worker-process.js 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var errors_1 = require("./util/errors");
  4. var helpers_1 = require("./util/helpers");
  5. var logger_1 = require("./logger/logger");
  6. process.on('message', function (msg) {
  7. try {
  8. var modulePath = "./" + msg.taskModule;
  9. var taskWorker = require(modulePath)[msg.taskWorker];
  10. taskWorker(msg.context, msg.workerConfig)
  11. .then(function (val) {
  12. taskResolve(msg.taskModule, msg.taskWorker, val);
  13. }, function (val) {
  14. taskReject(msg.taskModule, msg.taskWorker, val);
  15. })
  16. .catch(function (err) {
  17. taskError(msg.taskModule, msg.taskWorker, err);
  18. });
  19. }
  20. catch (e) {
  21. taskError(msg.taskModule, msg.taskWorker, e);
  22. process.exit(1);
  23. }
  24. });
  25. function taskResolve(taskModule, taskWorker, val) {
  26. var msg = {
  27. taskModule: taskModule,
  28. taskWorker: taskWorker,
  29. resolve: val,
  30. pid: process.pid
  31. };
  32. logger_1.Logger.debug("worker resolve, taskModule: " + msg.taskModule + ", pid: " + msg.pid);
  33. process.send(msg);
  34. }
  35. function taskReject(taskModule, taskWorker, error) {
  36. var buildError = new errors_1.BuildError(error.message);
  37. var json = helpers_1.buildErrorToJson(buildError);
  38. var msg = {
  39. taskModule: taskModule,
  40. taskWorker: taskWorker,
  41. reject: json,
  42. pid: process.pid
  43. };
  44. logger_1.Logger.debug("worker reject, taskModule: " + msg.taskModule + ", pid: " + msg.pid);
  45. process.send(msg);
  46. }
  47. function taskError(taskModule, taskWorker, error) {
  48. var buildError = new errors_1.BuildError(error.message);
  49. var json = helpers_1.buildErrorToJson(buildError);
  50. var msg = {
  51. taskModule: taskModule,
  52. taskWorker: taskWorker,
  53. error: json,
  54. pid: process.pid
  55. };
  56. logger_1.Logger.debug("worker error, taskModule: " + msg.taskModule + ", pid: " + msg.pid);
  57. process.send(msg);
  58. }