UNPKG

18.8 kBSource Map (JSON)View Raw
1{"version":3,"file":"WorkerJob.js","names":["_env","require","_err","_interopRequireDefault","_module","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","apmMock","startTransaction","end","startSpan","addLabels","setLabel","captureError","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","stop","setCustomContext","exports","WorkerJob","_Module","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","__worker","redeliveredCount","isDev","_createClass2","value","_run2","_callee2","_callee2$","_context2","__lifecycle","runStart","Err","data","name","run","_run","_init","_callee3","apm","_callee3$","_context3","_get2","worker","stats","startedAt","Date","app","hasModule","module","sent","tx","init","getQueueMeta","__meta","__name","__date","now","params","isTooMuchRedelivered","msg","fields","redelivered","deliveryTag","success","res","error","_onSuccess","_callee4","_callee4$","_context4","finishedAt","trigger","event","onSuccess","_onAckError","_callee5","err","_callee5$","_context5","onAckError","_x","_onError","_callee6","_callee6$","_context6","onError","_x2","setStatus","status","_ackSuccess","_callee7","_callee7$","_context7","log","warn","debug","trace","client","ack","action","ackSuccess","_nackError","_callee8","_callee8$","_context8","getCode","nack","requeue","nackError","_x3","_ackError","_callee9","_callee9$","_context9","ackError","_x4","_nackSuccess","_callee10","_callee10$","_context10","nackSuccess","Module","_default"],"sources":["../src/WorkerJob.js"],"sourcesContent":["import { isDev } from '@lskjs/env';\nimport Err from '@lskjs/err';\nimport Module from '@lskjs/module';\n// , { IModule, IModuleWithApp }\n\nexport const apmMock = {\n startTransaction() {\n return {\n end: () => null,\n startSpan: () => ({ end: () => null }),\n addLabels: () => null,\n setLabel: () => null,\n };\n },\n async captureError() {\n return null;\n },\n setCustomContext() {\n return null;\n },\n setLabel() {\n return null;\n },\n addLabels() {\n return null;\n },\n};\n\n// export interface IRabbitWorker extends IModule {\n// name?: string;\n// stats?: any;\n// }\n// export interface IWorkerJob extends IModule {\n// worker?: IRabbitWorker;\n// stats?: any;\n// startedAt: Date,\n// tx: any,\n// }\n\n// implements IWorkerJob\nexport class WorkerJob extends Module {\n static __worker = true;\n __worker = true;\n redeliveredCount = isDev ? null : 10;\n\n async _run() {\n if (!this.__lifecycle.runStart) {\n throw new Err('MODULE_INVALID_LIVECYCLE_RUN', 'use module.__run() instead module.run()', {\n data: { name: this.name },\n });\n }\n // try {\n await this.run();\n // } catch (err) {\n // safeLog(this, 'fatal', 'run()', err);\n // throw err;\n // }\n }\n\n async init() {\n await super.init();\n if (this.worker) this.stats = this.worker.stats;\n this.startedAt = new Date();\n let apm;\n if (this.app.hasModule('apm')) {\n apm = await this.app.module('apm', { throw: false });\n }\n if (!apm) apm = apmMock;\n this.tx = apm.startTransaction(this.name, 'job');\n }\n getQueueMeta() {\n return {\n __meta: {\n __name: this.name,\n __date: Date.now(),\n ...this.params,\n },\n };\n }\n isTooMuchRedelivered() {\n if (!this.msg) return false;\n if (!this.redeliveredCount) return false;\n return this.msg.fields.redelivered && this.msg.fields.deliveryTag > this.redeliveredCount;\n }\n\n success(res) {\n return this.result(res);\n }\n\n error(res) {\n return this.result(res);\n }\n\n result(res) {\n this.data = res;\n return res;\n }\n\n async onSuccess() {\n this.finishedAt = new Date();\n if (this.stats) this.stats.trigger({ event: 'success', startedAt: this.startedAt });\n if (this.tx) {\n this.tx.result = 'success';\n await this.tx.end();\n }\n }\n async onAckError(err) {\n this.err = err;\n this.finishedAt = new Date();\n if (this.stats) this.stats.trigger({ event: 'skip', startedAt: this.startedAt });\n if (this.tx) {\n this.tx.result = 'skip';\n await this.tx.end();\n }\n }\n async onError(err) {\n this.err = err;\n this.finishedAt = new Date();\n if (this.stats) this.stats.trigger({ event: 'error', startedAt: this.startedAt });\n if (this.tx) {\n // await this.apm.client.captureError(err);\n this.tx.result = 'error';\n await this.tx.end();\n }\n }\n setStatus(status) {\n this.status = status;\n return status;\n }\n\n /**\n * Когда всё хорошо\n */\n async ackSuccess() {\n if (this.status) {\n this.log.warn('ackSuccess ignore because has status');\n return this.status;\n }\n await this.onSuccess();\n if (this.debug) this.log.trace('[ack]');\n if (this.msg) await this.client.ack(this.msg);\n return this.setStatus({\n status: 'success',\n action: 'ack',\n });\n }\n /**\n * Когда всё плохо\n */\n async nackError(err) {\n if (this.status) {\n this.log.warn('nackError ignore because has status');\n return this.status;\n }\n await this.onError(err);\n // if (this.debug) this.log.error(`rabbit.nack [${Err.getCode(err)}]`, this.params);\n if (this.debug) this.log.error(`[nack] ${Err.getCode(err)}`);\n // if (this.msg && this.worker.consumerTag === this.msg.fields.consumerTag) {\n if (this.msg) {\n await this.client.nack(this.msg, { requeue: true });\n }\n return this.setStatus({\n status: 'error',\n action: 'nack',\n });\n }\n /**\n * Когда ошибка заебала, и больше это сообщение не нужно в очереди (например при множественно redelivered)\n */\n async ackError(err) {\n if (this.status) {\n this.log.warn('ackError ignore because has status');\n return this.status;\n }\n await this.onAckError(err);\n if (this.debug) this.log.trace(`[ackError] ${Err.getCode(err)}`);\n if (this.msg) await this.client.nack(this.msg, { requeue: false });\n return this.setStatus({\n status: 'error',\n action: 'nack',\n requeue: false,\n });\n }\n /**\n * Хз когда эта хрень нужна, просто добавил для консистентности\n * напишу throw, если вдруг кому-то реально понадобится -- пинганите меня\n * @isuvorov\n */\n async nackSuccess() {\n throw new Err('ХЗ КОМУ ЭТА ХРЕНЬ НУЖНА, ПИНГАНИТЕ МЕНЯ');\n // this.log.trace('rabbit.nack (success)');\n // await this.onError(err);\n // if (this.msg) await this.client.nack(this.msg);\n // return {\n // status: 'success',\n // action: 'nack',\n // };\n }\n}\n\nexport default WorkerJob;\n"],"mappings":"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"}
\No newline at end of file