1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 | Object.defineProperty(exports, "__esModule", {
|
5 | value: true
|
6 | });
|
7 | exports["default"] = exports.Worker = void 0;
|
8 | var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
9 | var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
10 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
11 | var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
12 | var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
13 | var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
14 | var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
15 | var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
16 | var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
17 | var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
18 | var _err = _interopRequireDefault(require("@lskjs/err"));
|
19 | var _module = _interopRequireDefault(require("@lskjs/module"));
|
20 | var _stats = _interopRequireDefault(require("@lskjs/stats"));
|
21 | var _env = require("@lskjs/utils/env");
|
22 | var _tryJSONparse = _interopRequireDefault(require("@lskjs/utils/tryJSONparse"));
|
23 | var _bluebird = _interopRequireDefault(require("bluebird"));
|
24 | var _get3 = _interopRequireDefault(require("lodash/get"));
|
25 | var _pick = _interopRequireDefault(require("lodash/pick"));
|
26 | var _createTelegramMessage = require("./utils/createTelegramMessage");
|
27 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
28 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
29 | function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
30 | function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
31 | var Worker = function (_Module) {
|
32 | (0, _inherits2["default"])(Worker, _Module);
|
33 | var _super = _createSuper(Worker);
|
34 | function Worker() {
|
35 | var _this;
|
36 | (0, _classCallCheck2["default"])(this, Worker);
|
37 | for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
38 | args[_key] = arguments[_key];
|
39 | }
|
40 | _this = _super.call.apply(_super, [this].concat(args));
|
41 | _this.__worker = true;
|
42 | return _this;
|
43 | }
|
44 | (0, _createClass2["default"])(Worker, [{
|
45 | key: "showErrorInfo",
|
46 | value: function showErrorInfo() {
|
47 | return false;
|
48 | }
|
49 | }, {
|
50 | key: "getConfig",
|
51 | value: function () {
|
52 | var _getConfig = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee() {
|
53 | return _regenerator["default"].wrap(function _callee$(_context) {
|
54 | while (1) switch (_context.prev = _context.next) {
|
55 | case 0:
|
56 | _context.t0 = _objectSpread;
|
57 | _context.t1 = {
|
58 | autoconnect: true
|
59 | };
|
60 | _context.next = 4;
|
61 | return (0, _get2["default"])((0, _getPrototypeOf2["default"])(Worker.prototype), "getConfig", this).call(this);
|
62 | case 4:
|
63 | _context.t2 = _context.sent;
|
64 | return _context.abrupt("return", (0, _context.t0)(_context.t1, _context.t2));
|
65 | case 6:
|
66 | case "end":
|
67 | return _context.stop();
|
68 | }
|
69 | }, _callee, this);
|
70 | }));
|
71 | function getConfig() {
|
72 | return _getConfig.apply(this, arguments);
|
73 | }
|
74 | return getConfig;
|
75 | }()
|
76 | }, {
|
77 | key: "getJobConfig",
|
78 | value: function () {
|
79 | var _getJobConfig = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee2() {
|
80 | var _this$config, _this$config2, _this$config2$log;
|
81 | var mConfig, res;
|
82 | return _regenerator["default"].wrap(function _callee2$(_context2) {
|
83 | while (1) switch (_context2.prev = _context2.next) {
|
84 | case 0:
|
85 | _context2.next = 2;
|
86 | return this.getModuleConfig('job');
|
87 | case 2:
|
88 | mConfig = _context2.sent;
|
89 | res = _objectSpread(_objectSpread(_objectSpread({}, mConfig || {}), this.config || {}), {}, {
|
90 | log: _objectSpread(_objectSpread(_objectSpread({}, (mConfig === null || mConfig === void 0 ? void 0 : mConfig.log) || {}), ((_this$config = this.config) === null || _this$config === void 0 ? void 0 : _this$config.log) || {}), {}, {
|
91 | ns: [(_this$config2 = this.config) === null || _this$config2 === void 0 ? void 0 : (_this$config2$log = _this$config2.log) === null || _this$config2$log === void 0 ? void 0 : _this$config2$log.ns, 'job'].filter(Boolean).join('.')
|
92 | })
|
93 | });
|
94 | return _context2.abrupt("return", res);
|
95 | case 5:
|
96 | case "end":
|
97 | return _context2.stop();
|
98 | }
|
99 | }, _callee2, this);
|
100 | }));
|
101 | function getJobConfig() {
|
102 | return _getJobConfig.apply(this, arguments);
|
103 | }
|
104 | return getJobConfig;
|
105 | }()
|
106 | }, {
|
107 | key: "parse",
|
108 | value: function () {
|
109 | var _parse = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee3() {
|
110 | return _regenerator["default"].wrap(function _callee3$(_context3) {
|
111 | while (1) switch (_context3.prev = _context3.next) {
|
112 | case 0:
|
113 | throw new _err["default"]('NOT_IMPLEMENTED', 'not implemented worker.parse()');
|
114 | case 1:
|
115 | case "end":
|
116 | return _context3.stop();
|
117 | }
|
118 | }, _callee3);
|
119 | }));
|
120 | function parse() {
|
121 | return _parse.apply(this, arguments);
|
122 | }
|
123 | return parse;
|
124 | }()
|
125 | }, {
|
126 | key: "onTelegramError",
|
127 | value: function () {
|
128 | var _onTelegramError = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee4(_ref) {
|
129 | var err, job, rlog;
|
130 | return _regenerator["default"].wrap(function _callee4$(_context4) {
|
131 | while (1) switch (_context4.prev = _context4.next) {
|
132 | case 0:
|
133 | err = _ref.err, job = _ref.job;
|
134 | if (!this.app.hasModule('rlog')) {
|
135 | _context4.next = 6;
|
136 | break;
|
137 | }
|
138 | _context4.next = 4;
|
139 | return this.app.module('rlog');
|
140 | case 4:
|
141 | rlog = _context4.sent;
|
142 | rlog.error((0, _createTelegramMessage.createTelegramMessage)({
|
143 | name: this.name,
|
144 | err: err,
|
145 | job: job
|
146 | }));
|
147 | case 6:
|
148 | case "end":
|
149 | return _context4.stop();
|
150 | }
|
151 | }, _callee4, this);
|
152 | }));
|
153 | function onTelegramError(_x) {
|
154 | return _onTelegramError.apply(this, arguments);
|
155 | }
|
156 | return onTelegramError;
|
157 | }()
|
158 | }, {
|
159 | key: "onConsume",
|
160 | value: function () {
|
161 | var _onConsume = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee5(msg) {
|
162 | var params, job;
|
163 | return _regenerator["default"].wrap(function _callee5$(_context5) {
|
164 | while (1) switch (_context5.prev = _context5.next) {
|
165 | case 0:
|
166 | if (this.showErrorInfo()) this.log.trace('[onConsume] start', msg);
|
167 | this.stats.print({
|
168 | log: this.log.info.bind(this.log),
|
169 | successKey: 'event.success',
|
170 | unsuccessKey: 'event.error'
|
171 | });
|
172 | if (!(msg === null)) {
|
173 | _context5.next = 4;
|
174 | break;
|
175 | }
|
176 | return _context5.abrupt("return");
|
177 | case 4:
|
178 | _context5.prev = 4;
|
179 | params = this.getMsgData(msg, 'content');
|
180 | _context5.next = 14;
|
181 | break;
|
182 | case 8:
|
183 | _context5.prev = 8;
|
184 | _context5.t0 = _context5["catch"](4);
|
185 | _context5.next = 12;
|
186 | return this.client.nack(msg, {
|
187 | requeue: false
|
188 | });
|
189 | case 12:
|
190 | if (this.showErrorInfo()) this.log.error('[onConsume] !content');
|
191 | return _context5.abrupt("return");
|
192 | case 14:
|
193 | _context5.next = 16;
|
194 | return this.createJob({
|
195 | msg: msg,
|
196 | params: params
|
197 | });
|
198 | case 16:
|
199 | job = _context5.sent;
|
200 | _context5.prev = 17;
|
201 | if (this.showErrorInfo()) this.log.trace('[onConsume] job.start()');
|
202 | _context5.next = 21;
|
203 | return job.start();
|
204 | case 21:
|
205 | if (this.showErrorInfo()) this.log.trace('[onConsume] job.start() finished');
|
206 | if (job.status) {
|
207 | _context5.next = 25;
|
208 | break;
|
209 | }
|
210 | _context5.next = 25;
|
211 | return job.ackSuccess();
|
212 | case 25:
|
213 | _context5.next = 38;
|
214 | break;
|
215 | case 27:
|
216 | _context5.prev = 27;
|
217 | _context5.t1 = _context5["catch"](17);
|
218 | _context5.prev = 29;
|
219 | if (this.showErrorInfo()) this.log.trace('[onConsume] onConsumeError');
|
220 | _context5.next = 33;
|
221 | return this.onConsumeError(_context5.t1, {
|
222 | job: job,
|
223 | msg: msg
|
224 | });
|
225 | case 33:
|
226 | _context5.next = 38;
|
227 | break;
|
228 | case 35:
|
229 | _context5.prev = 35;
|
230 | _context5.t2 = _context5["catch"](29);
|
231 | if (this.showErrorInfo()) this.log.error('[onConsume] onConsumeError err', _context5.t2);
|
232 | case 38:
|
233 | if (this.showErrorInfo()) this.log.trace('[onConsume] finish');
|
234 | case 39:
|
235 | case "end":
|
236 | return _context5.stop();
|
237 | }
|
238 | }, _callee5, this, [[4, 8], [17, 27], [29, 35]]);
|
239 | }));
|
240 | function onConsume(_x2) {
|
241 | return _onConsume.apply(this, arguments);
|
242 | }
|
243 | return onConsume;
|
244 | }()
|
245 | }, {
|
246 | key: "onConsumeError",
|
247 | value: function () {
|
248 | var _onConsumeError = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee7(error, _ref2) {
|
249 | var _this2 = this;
|
250 | var job, err, errorParams, _ref3, _ref3$delay, delay, errInfo, isApm, isNack, isTelegram, log, timeout, doTimeout, _this$log, code, message, apm, fromQueue, queue;
|
251 | return _regenerator["default"].wrap(function _callee7$(_context7) {
|
252 | while (1) switch (_context7.prev = _context7.next) {
|
253 | case 0:
|
254 | job = _ref2.job;
|
255 | if (this.showErrorInfo()) {
|
256 | this.log.error('-----------\n', error, '\n-----------');
|
257 | this.log.error('-----------\n', error.stack, '\n-----------');
|
258 | }
|
259 | _context7.prev = 2;
|
260 | errorParams = (0, _pick["default"])(error, 'nack', 'es', 'telegram', 'log');
|
261 | err = new _err["default"](error, errorParams);
|
262 | _ref3 = this.config.options || {}, _ref3$delay = _ref3.delay, delay = _ref3$delay === void 0 ? _env.isDev ? 10000 : 0 : _ref3$delay;
|
263 | if (!delay) {
|
264 | _context7.next = 10;
|
265 | break;
|
266 | }
|
267 | this.log.warn('[delay] 10000');
|
268 | _context7.next = 10;
|
269 | return _bluebird["default"].delay(10000);
|
270 | case 10:
|
271 | _context7.next = 15;
|
272 | break;
|
273 | case 12:
|
274 | _context7.prev = 12;
|
275 | _context7.t0 = _context7["catch"](2);
|
276 | this.log.error('error while onError', _context7.t0);
|
277 | case 15:
|
278 | if (job) {
|
279 | _context7.next = 17;
|
280 | break;
|
281 | }
|
282 | return _context7.abrupt("return");
|
283 | case 17:
|
284 | errInfo = this.app && this.app.getErrorInfo ? this.app.getErrorInfo(err) : {};
|
285 | if (this.showErrorInfo()) this.log.trace('onConsumeError errInfo', errInfo);
|
286 | isApm = (0, _get3["default"])(errInfo, 'apm', true);
|
287 | isNack = (0, _get3["default"])(errInfo, 'nack', true);
|
288 | isTelegram = (0, _get3["default"])(errInfo, 'telegram', true);
|
289 | log = (0, _get3["default"])(errInfo, 'log', 'error');
|
290 | timeout = errInfo.timeout || (0, _tryJSONparse["default"])(process.env.AMQP_ERROR_TIMEOUT) || (0, _tryJSONparse["default"])(process.env.ERROR_TIMEOUT);
|
291 | doTimeout = function () {
|
292 | var _ref4 = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee6() {
|
293 | return _regenerator["default"].wrap(function _callee6$(_context6) {
|
294 | while (1) switch (_context6.prev = _context6.next) {
|
295 | case 0:
|
296 | if (!timeout) {
|
297 | _context6.next = 4;
|
298 | break;
|
299 | }
|
300 | _this2.log.trace('[err.timeout]', timeout, '[delay]');
|
301 | _context6.next = 4;
|
302 | return _bluebird["default"].delay(timeout);
|
303 | case 4:
|
304 | case "end":
|
305 | return _context6.stop();
|
306 | }
|
307 | }, _callee6);
|
308 | }));
|
309 | return function doTimeout() {
|
310 | return _ref4.apply(this, arguments);
|
311 | };
|
312 | }();
|
313 | if (log && this.log[log]) {
|
314 | code = _err["default"].getCode(err);
|
315 |
|
316 | if (code === message) message = null;
|
317 | (_this$log = this.log)[log].apply(_this$log, (0, _toConsumableArray2["default"])([code, message].filter(Boolean)));
|
318 | }
|
319 | _context7.next = 28;
|
320 | return doTimeout();
|
321 | case 28:
|
322 | if (isTelegram) {
|
323 | this.onTelegramError({
|
324 | err: err,
|
325 | job: job
|
326 | });
|
327 | }
|
328 | if (!(isApm && this.app.hasModule('apm'))) {
|
329 | _context7.next = 34;
|
330 | break;
|
331 | }
|
332 | _context7.next = 32;
|
333 | return this.app.module('apm');
|
334 | case 32:
|
335 | apm = _context7.sent;
|
336 | try {
|
337 | apm.captureError(err);
|
338 | } catch (apmErr) {
|
339 | this.log.error('apm.captureError', apmErr);
|
340 | }
|
341 | case 34:
|
342 | if (isNack) {
|
343 | _context7.next = 39;
|
344 | break;
|
345 | }
|
346 | if (this.showErrorInfo()) console.error('err4', err);
|
347 | _context7.next = 38;
|
348 | return job.ackError(err);
|
349 | case 38:
|
350 | return _context7.abrupt("return");
|
351 | case 39:
|
352 | if (!(errInfo.redelivered && job.isTooMuchRedelivered && job.isTooMuchRedelivered())) {
|
353 | _context7.next = 49;
|
354 | break;
|
355 | }
|
356 | fromQueue = this.getQueue();
|
357 | queue = "".concat(fromQueue, "_redelivered");
|
358 | if (!this.sendToRedelivered) {
|
359 | _context7.next = 45;
|
360 | break;
|
361 | }
|
362 | _context7.next = 45;
|
363 | return this.sendToRedelivered(job, queue, {
|
364 | err: err,
|
365 | fromQueue: fromQueue
|
366 | });
|
367 | case 45:
|
368 | if (this.showErrorInfo()) console.error('err2', err);
|
369 | _context7.next = 48;
|
370 | return job.ackError(err);
|
371 | case 48:
|
372 | return _context7.abrupt("return");
|
373 | case 49:
|
374 | if (this.showErrorInfo()) console.error('err3', err);
|
375 | _context7.next = 52;
|
376 | return job.nackError(err);
|
377 | case 52:
|
378 | case "end":
|
379 | return _context7.stop();
|
380 | }
|
381 | }, _callee7, this, [[2, 12]]);
|
382 | }));
|
383 | function onConsumeError(_x3, _x4) {
|
384 | return _onConsumeError.apply(this, arguments);
|
385 | }
|
386 | return onConsumeError;
|
387 | }()
|
388 | }, {
|
389 | key: "initStats",
|
390 | value: function () {
|
391 | var _initStats = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee8() {
|
392 | var statsProps;
|
393 | return _regenerator["default"].wrap(function _callee8$(_context8) {
|
394 | while (1) switch (_context8.prev = _context8.next) {
|
395 | case 0:
|
396 | statsProps = {};
|
397 | statsProps.debug = this.log.trace.bind(this.log);
|
398 | _context8.next = 4;
|
399 | return _stats["default"].create(statsProps);
|
400 | case 4:
|
401 | this.stats = _context8.sent;
|
402 | if (this.stats) this.stats.startTimer();
|
403 | case 6:
|
404 | case "end":
|
405 | return _context8.stop();
|
406 | }
|
407 | }, _callee8, this);
|
408 | }));
|
409 | function initStats() {
|
410 | return _initStats.apply(this, arguments);
|
411 | }
|
412 | return initStats;
|
413 | }()
|
414 | }, {
|
415 | key: "getQueue",
|
416 | value: function getQueue() {
|
417 | return this.config.queue || this.queue || this.config.topic || this.topic;
|
418 | }
|
419 | }, {
|
420 | key: "getMsgData",
|
421 | value: function getMsgData(msg) {
|
422 | try {
|
423 | return JSON.parse(msg.toString());
|
424 | } catch (err) {
|
425 | var str = msg.toString();
|
426 | if (_env.isDev) {
|
427 | this.log.error('[ignore] cantParseJSON', str);
|
428 | } else {
|
429 | this.log.error('[ignore] cantParseJSON ');
|
430 | this.onTelegramError({
|
431 | err: 'cantParseJSON',
|
432 | job: {
|
433 | params: str
|
434 | }
|
435 | });
|
436 | }
|
437 | throw new _err["default"]('catntParseJSON', {
|
438 | str: str
|
439 | });
|
440 | }
|
441 | }
|
442 | }, {
|
443 | key: "getConsumerOptions",
|
444 | value: function getConsumerOptions() {
|
445 | return {};
|
446 | }
|
447 | }, {
|
448 | key: "connect",
|
449 | value: function () {
|
450 | var _connect = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee9() {
|
451 | var queue, onConsume;
|
452 | return _regenerator["default"].wrap(function _callee9$(_context9) {
|
453 | while (1) switch (_context9.prev = _context9.next) {
|
454 | case 0:
|
455 | _context9.next = 2;
|
456 | return this.app.module(this.__broker);
|
457 | case 2:
|
458 | this.client = _context9.sent;
|
459 | queue = this.getQueue();
|
460 | if (queue) {
|
461 | _context9.next = 7;
|
462 | break;
|
463 | }
|
464 | this.log.warn('!queue || !topic');
|
465 | return _context9.abrupt("return", null);
|
466 | case 7:
|
467 | onConsume = this.onConsume.bind(this);
|
468 | _context9.next = 10;
|
469 | return this.client.consume(queue, onConsume, this.getConsumerOptions());
|
470 | case 10:
|
471 | this.consumer = _context9.sent;
|
472 | return _context9.abrupt("return", this.consumer);
|
473 | case 12:
|
474 | case "end":
|
475 | return _context9.stop();
|
476 | }
|
477 | }, _callee9, this);
|
478 | }));
|
479 | function connect() {
|
480 | return _connect.apply(this, arguments);
|
481 | }
|
482 | return connect;
|
483 | }()
|
484 | }, {
|
485 | key: "run",
|
486 | value: function () {
|
487 | var _run = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee10() {
|
488 | var queue;
|
489 | return _regenerator["default"].wrap(function _callee10$(_context10) {
|
490 | while (1) switch (_context10.prev = _context10.next) {
|
491 | case 0:
|
492 | _context10.next = 2;
|
493 | return (0, _get2["default"])((0, _getPrototypeOf2["default"])(Worker.prototype), "run", this).call(this);
|
494 | case 2:
|
495 | queue = this.getQueue();
|
496 | if (queue) {
|
497 | _context10.next = 6;
|
498 | break;
|
499 | }
|
500 | this.log.warn('!queue || !topic');
|
501 | return _context10.abrupt("return");
|
502 | case 6:
|
503 | if (this.Job) {
|
504 | _context10.next = 9;
|
505 | break;
|
506 | }
|
507 | this.log.warn('!Job', this.Job);
|
508 | return _context10.abrupt("return");
|
509 | case 9:
|
510 | if (!this.config.autoconnect) {
|
511 | _context10.next = 15;
|
512 | break;
|
513 | }
|
514 | this.log.debug('autoconnect');
|
515 | _context10.next = 13;
|
516 | return this.initStats();
|
517 | case 13:
|
518 | _context10.next = 15;
|
519 | return this.connect();
|
520 | case 15:
|
521 | case "end":
|
522 | return _context10.stop();
|
523 | }
|
524 | }, _callee10, this);
|
525 | }));
|
526 | function run() {
|
527 | return _run.apply(this, arguments);
|
528 | }
|
529 | return run;
|
530 | }()
|
531 | }, {
|
532 | key: "createJob",
|
533 | value: function () {
|
534 | var _createJob = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee11() {
|
535 | var props,
|
536 | mergedProps,
|
537 | _args11 = arguments;
|
538 | return _regenerator["default"].wrap(function _callee11$(_context11) {
|
539 | while (1) switch (_context11.prev = _context11.next) {
|
540 | case 0:
|
541 | props = _args11.length > 0 && _args11[0] !== undefined ? _args11[0] : {};
|
542 | _context11.t0 = _objectSpread;
|
543 | _context11.t1 = new Date();
|
544 | _context11.t2 = this;
|
545 | _context11.t3 = this;
|
546 | _context11.t4 = this.app;
|
547 | _context11.next = 8;
|
548 | return this.getJobConfig();
|
549 | case 8:
|
550 | _context11.t5 = _context11.sent;
|
551 | _context11.t6 = {
|
552 | '__lifecycle.create': _context11.t1,
|
553 | worker: _context11.t2,
|
554 | __parent: _context11.t3,
|
555 | app: _context11.t4,
|
556 | config: _context11.t5
|
557 | };
|
558 | _context11.t7 = props;
|
559 | mergedProps = (0, _context11.t0)(_context11.t6, _context11.t7);
|
560 | if (this.client) {
|
561 | mergedProps.client = this.client;
|
562 | if (this.__broker) mergedProps[this.__broker] = this.client;
|
563 | }
|
564 | return _context11.abrupt("return", this.Job["new"](mergedProps));
|
565 | case 14:
|
566 | case "end":
|
567 | return _context11.stop();
|
568 | }
|
569 | }, _callee11, this);
|
570 | }));
|
571 | function createJob() {
|
572 | return _createJob.apply(this, arguments);
|
573 | }
|
574 | return createJob;
|
575 | }()
|
576 | }, {
|
577 | key: "process",
|
578 | value: function () {
|
579 | var _process = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee12(params) {
|
580 | var props,
|
581 | job,
|
582 | _args12 = arguments;
|
583 | return _regenerator["default"].wrap(function _callee12$(_context12) {
|
584 | while (1) switch (_context12.prev = _context12.next) {
|
585 | case 0:
|
586 | props = _args12.length > 1 && _args12[1] !== undefined ? _args12[1] : {};
|
587 | _context12.next = 3;
|
588 | return this.createJob(_objectSpread(_objectSpread({}, props), {}, {
|
589 | params: params
|
590 | }));
|
591 | case 3:
|
592 | job = _context12.sent;
|
593 | _context12.next = 6;
|
594 | return job.start();
|
595 | case 6:
|
596 | return _context12.abrupt("return", _objectSpread(_objectSpread({
|
597 | code: job.err ? _err["default"].getCode(job.err) : 0
|
598 | }, job.getQueueMeta()), {}, {
|
599 | startedAt: job.startedAt,
|
600 | finishedAt: job.finishedAt,
|
601 | runningTime: job.finishedAt ? job.finishedAt - job.startedAt : null,
|
602 | status: job.status,
|
603 | data: job.data,
|
604 | err: job.err
|
605 | }));
|
606 | case 7:
|
607 | case "end":
|
608 | return _context12.stop();
|
609 | }
|
610 | }, _callee12, this);
|
611 | }));
|
612 | function process(_x5) {
|
613 | return _process.apply(this, arguments);
|
614 | }
|
615 | return process;
|
616 | }()
|
617 | }, {
|
618 | key: "stop",
|
619 | value: function () {
|
620 | var _stop = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee13() {
|
621 | return _regenerator["default"].wrap(function _callee13$(_context13) {
|
622 | while (1) switch (_context13.prev = _context13.next) {
|
623 | case 0:
|
624 | _context13.next = 2;
|
625 | return (0, _get2["default"])((0, _getPrototypeOf2["default"])(Worker.prototype), "stop", this).call(this);
|
626 | case 2:
|
627 | return _context13.abrupt("return", this.client.stop());
|
628 | case 3:
|
629 | case "end":
|
630 | return _context13.stop();
|
631 | }
|
632 | }, _callee13, this);
|
633 | }));
|
634 | function stop() {
|
635 | return _stop.apply(this, arguments);
|
636 | }
|
637 | return stop;
|
638 | }()
|
639 | }]);
|
640 | return Worker;
|
641 | }(_module["default"]);
|
642 | exports.Worker = Worker;
|
643 | Worker.__worker = true;
|
644 | var _default = Worker;
|
645 | exports["default"] = _default;
|
646 |
|
\ | No newline at end of file |