exodus-framework 2.0.788 → 2.0.790
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/contracts/contansts.d.ts +7 -0
- package/lib/contracts/contansts.d.ts.map +1 -0
- package/lib/contracts/contansts.js +13 -0
- package/lib/services/task/TaskServiceBase.d.ts +10 -0
- package/lib/services/task/TaskServiceBase.d.ts.map +1 -0
- package/lib/services/task/TaskServiceBase.js +14 -0
- package/lib/services/task/index.d.ts +4 -0
- package/lib/services/task/index.d.ts.map +1 -0
- package/lib/services/task/index.js +40 -0
- package/lib/services/task/queue/QueueService.d.ts +13 -0
- package/lib/services/task/queue/QueueService.d.ts.map +1 -0
- package/lib/services/task/queue/QueueService.js +60 -0
- package/lib/services/task/queue/QueueTask.d.ts +20 -0
- package/lib/services/task/queue/QueueTask.d.ts.map +1 -0
- package/lib/services/task/queue/QueueTask.js +46 -0
- package/lib/services/task/queue/index.d.ts +3 -0
- package/lib/services/task/queue/index.d.ts.map +1 -0
- package/lib/services/task/queue/index.js +20 -0
- package/lib/services/task/scheduler/SchedulerService.d.ts +11 -0
- package/lib/services/task/scheduler/SchedulerService.d.ts.map +1 -0
- package/lib/services/task/scheduler/SchedulerService.js +50 -0
- package/lib/services/task/scheduler/SchedulerTask.d.ts +13 -0
- package/lib/services/task/scheduler/SchedulerTask.d.ts.map +1 -0
- package/lib/services/task/scheduler/SchedulerTask.js +28 -0
- package/lib/services/task/scheduler/index.d.ts +3 -0
- package/lib/services/task/scheduler/index.d.ts.map +1 -0
- package/lib/services/task/scheduler/index.js +20 -0
- package/package.json +1 -1
- package/lib/services/task.d.ts +0 -54
- package/lib/services/task.d.ts.map +0 -1
- package/lib/services/task.js +0 -164
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"contansts.d.ts","sourceRoot":"","sources":["../../src/contracts/contansts.ts"],"names":[],"mappings":"AAAA,oBAAY,qBAAqB;IAC/B,QAAQ,kBAAkB;IAC1B,OAAO,kBAAkB;IACzB,MAAM,mBAAmB;IACzB,IAAI,mBAAmB;CACxB"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.eScheduleTaskInterval = void 0;
|
7
|
+
let eScheduleTaskInterval = exports.eScheduleTaskInterval = /*#__PURE__*/function (eScheduleTaskInterval) {
|
8
|
+
eScheduleTaskInterval["CRITICAL"] = "*/1 * * * * *";
|
9
|
+
eScheduleTaskInterval["DEFAULT"] = "*/3 * * * * *";
|
10
|
+
eScheduleTaskInterval["REPORT"] = "*/10 * * * * *";
|
11
|
+
eScheduleTaskInterval["SYNC"] = "*/60 * * * * *";
|
12
|
+
return eScheduleTaskInterval;
|
13
|
+
}({});
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { Service } from '../../app';
|
2
|
+
import { IService } from '../../contracts';
|
3
|
+
declare abstract class TaskServiceBase extends Service implements IService {
|
4
|
+
protected jobsPath: string;
|
5
|
+
abstract init(): Promise<void>;
|
6
|
+
abstract registerJob(...args: any[]): Promise<void>;
|
7
|
+
setTaskPath(path: string): void;
|
8
|
+
}
|
9
|
+
export default TaskServiceBase;
|
10
|
+
//# sourceMappingURL=TaskServiceBase.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TaskServiceBase.d.ts","sourceRoot":"","sources":["../../../src/services/task/TaskServiceBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,uBAAe,eAAgB,SAAQ,OAAQ,YAAW,QAAQ;IAChE,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnD,WAAW,CAAC,IAAI,EAAE,MAAM;CAGzB;AAED,eAAe,eAAe,CAAC"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _app = require("../../app");
|
8
|
+
class TaskServiceBase extends _app.Service {
|
9
|
+
jobsPath;
|
10
|
+
setTaskPath(path) {
|
11
|
+
this.jobsPath = path;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
var _default = exports.default = TaskServiceBase;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/task/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
var _exportNames = {
|
7
|
+
TaskServiceBase: true
|
8
|
+
};
|
9
|
+
Object.defineProperty(exports, "TaskServiceBase", {
|
10
|
+
enumerable: true,
|
11
|
+
get: function () {
|
12
|
+
return _TaskServiceBase.default;
|
13
|
+
}
|
14
|
+
});
|
15
|
+
var _queue = require("./queue");
|
16
|
+
Object.keys(_queue).forEach(function (key) {
|
17
|
+
if (key === "default" || key === "__esModule") return;
|
18
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
19
|
+
if (key in exports && exports[key] === _queue[key]) return;
|
20
|
+
Object.defineProperty(exports, key, {
|
21
|
+
enumerable: true,
|
22
|
+
get: function () {
|
23
|
+
return _queue[key];
|
24
|
+
}
|
25
|
+
});
|
26
|
+
});
|
27
|
+
var _scheduler = require("./scheduler");
|
28
|
+
Object.keys(_scheduler).forEach(function (key) {
|
29
|
+
if (key === "default" || key === "__esModule") return;
|
30
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
31
|
+
if (key in exports && exports[key] === _scheduler[key]) return;
|
32
|
+
Object.defineProperty(exports, key, {
|
33
|
+
enumerable: true,
|
34
|
+
get: function () {
|
35
|
+
return _scheduler[key];
|
36
|
+
}
|
37
|
+
});
|
38
|
+
});
|
39
|
+
var _TaskServiceBase = _interopRequireDefault(require("./TaskServiceBase"));
|
40
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import TaskServiceBase from '../TaskServiceBase';
|
2
|
+
import QueueTask from './QueueTask';
|
3
|
+
declare class QueueTaskService extends TaskServiceBase {
|
4
|
+
private jobs;
|
5
|
+
private connection;
|
6
|
+
init(): Promise<void>;
|
7
|
+
registerJob(job: QueueTask<any>): Promise<void>;
|
8
|
+
private importAllJobs;
|
9
|
+
private processAllJobs;
|
10
|
+
startTask(task: QueueTask<any>): Promise<void>;
|
11
|
+
}
|
12
|
+
export default QueueTaskService;
|
13
|
+
//# sourceMappingURL=QueueService.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"QueueService.d.ts","sourceRoot":"","sources":["../../../../src/services/task/queue/QueueService.ts"],"names":[],"mappings":"AAIA,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,SAAS,MAAM,aAAa,CAAC;AAGpC,cAAM,gBAAiB,SAAQ,eAAe;IAC5C,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,UAAU,CAAoB;IAEhC,IAAI;IAeG,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAI9C,aAAa;YAUb,cAAc;IAMf,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;CAiB5C;AAED,eAAe,gBAAgB,CAAC"}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _bullmq = require("bullmq");
|
8
|
+
var _fs = require("fs");
|
9
|
+
var _app = require("../../../app");
|
10
|
+
var _TaskServiceBase = _interopRequireDefault(require("../TaskServiceBase"));
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
12
|
+
//* Queue
|
13
|
+
class QueueTaskService extends _TaskServiceBase.default {
|
14
|
+
jobs;
|
15
|
+
connection;
|
16
|
+
async init() {
|
17
|
+
this.jobs = [];
|
18
|
+
this.connection = {
|
19
|
+
host: _app.Core.settings.getCache().host,
|
20
|
+
port: Number(_app.Core.settings.getCache().port),
|
21
|
+
password: _app.Core.settings.getCache().password
|
22
|
+
};
|
23
|
+
this.log('Initializing jobs...', 'info');
|
24
|
+
await this.importAllJobs();
|
25
|
+
await this.processAllJobs();
|
26
|
+
this.log('All jobs initializeds...', 'info');
|
27
|
+
}
|
28
|
+
async registerJob(job) {
|
29
|
+
this.jobs.push(job);
|
30
|
+
}
|
31
|
+
async importAllJobs() {
|
32
|
+
if (!(0, _fs.existsSync)(this.jobsPath)) (0, _fs.mkdirSync)(this.jobsPath, {
|
33
|
+
recursive: true
|
34
|
+
});
|
35
|
+
for (const handlerFile of (0, _fs.readdirSync)(this.jobsPath)) {
|
36
|
+
const job = require(`${this.jobsPath}/${handlerFile}`).default;
|
37
|
+
const jobInstance = job.singleton();
|
38
|
+
this.jobs.push(jobInstance);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
async processAllJobs() {
|
42
|
+
for (const job of this.jobs) {
|
43
|
+
this.startTask(job);
|
44
|
+
}
|
45
|
+
}
|
46
|
+
async startTask(task) {
|
47
|
+
if (!task.getActive()) return;
|
48
|
+
const queue = new _bullmq.Queue(task.getName(), {
|
49
|
+
connection: this.connection
|
50
|
+
});
|
51
|
+
const worker = new _bullmq.Worker(task.getName(), task.execute.bind(task), {
|
52
|
+
connection: this.connection
|
53
|
+
});
|
54
|
+
task.setQueue(queue);
|
55
|
+
task.setWorker(worker);
|
56
|
+
task.init();
|
57
|
+
this.log(`Job '${task.getName()}' started...`, 'warning');
|
58
|
+
}
|
59
|
+
}
|
60
|
+
var _default = exports.default = QueueTaskService;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { Job, Queue, Worker } from 'bullmq';
|
2
|
+
import { Singleton } from '../../../app';
|
3
|
+
declare abstract class QueueTask<DataType, ResultType = any, NameType extends string = string> extends Singleton {
|
4
|
+
protected queue: Queue;
|
5
|
+
protected worker: Worker;
|
6
|
+
addJob(data: DataType): Promise<void>;
|
7
|
+
getQueue(): Queue<any, any, string>;
|
8
|
+
setQueue(queue: Queue): void;
|
9
|
+
getWorker(): Worker<any, any, string>;
|
10
|
+
setWorker(worker: Worker): void;
|
11
|
+
init(): Promise<void>;
|
12
|
+
execute(job: Job<DataType, ResultType, NameType>, token: string): void;
|
13
|
+
onInit(): Promise<void>;
|
14
|
+
onNewJob(_data: DataType): Promise<void>;
|
15
|
+
getActive(): Promise<boolean>;
|
16
|
+
abstract getName(): string;
|
17
|
+
abstract onExecute(_job: Job<DataType, ResultType, NameType>, _token?: string): Promise<ResultType>;
|
18
|
+
}
|
19
|
+
export default QueueTask;
|
20
|
+
//# sourceMappingURL=QueueTask.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"QueueTask.d.ts","sourceRoot":"","sources":["../../../../src/services/task/queue/QueueTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,uBAAe,SAAS,CACtB,QAAQ,EACR,UAAU,GAAG,GAAG,EAChB,QAAQ,SAAS,MAAM,GAAG,MAAM,CAChC,SAAQ,SAAS;IACjB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACvB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAEZ,MAAM,CAAC,IAAI,EAAE,QAAQ;IAK3B,QAAQ;IAGR,QAAQ,CAAC,KAAK,EAAE,KAAK;IAGrB,SAAS;IAGT,SAAS,CAAC,MAAM,EAAE,MAAM;IAGlB,IAAI;IAGV,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM;IAKzD,MAAM;IAGN,QAAQ,CAAC,KAAK,EAAE,QAAQ;IAGxB,SAAS;IAItB,QAAQ,CAAC,OAAO,IAAI,MAAM;IAC1B,QAAQ,CAAC,SAAS,CAChB,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EACzC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC;CACvB;AAED,eAAe,SAAS,CAAC"}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _app = require("../../../app");
|
8
|
+
class QueueTask extends _app.Singleton {
|
9
|
+
queue;
|
10
|
+
worker;
|
11
|
+
async addJob(data) {
|
12
|
+
await this.queue.add(this.getName(), data);
|
13
|
+
this.onNewJob(data);
|
14
|
+
this.log('Nova tarefa disponível.', 'comment');
|
15
|
+
}
|
16
|
+
getQueue() {
|
17
|
+
return this.queue;
|
18
|
+
}
|
19
|
+
setQueue(queue) {
|
20
|
+
this.queue = queue;
|
21
|
+
}
|
22
|
+
getWorker() {
|
23
|
+
return this.worker;
|
24
|
+
}
|
25
|
+
setWorker(worker) {
|
26
|
+
this.worker = worker;
|
27
|
+
}
|
28
|
+
async init() {
|
29
|
+
this.onInit();
|
30
|
+
}
|
31
|
+
execute(job, token) {
|
32
|
+
this.onExecute(job, token);
|
33
|
+
}
|
34
|
+
|
35
|
+
//# Muted Methods
|
36
|
+
async onInit() {
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
async onNewJob(_data) {
|
40
|
+
return;
|
41
|
+
}
|
42
|
+
async getActive() {
|
43
|
+
return true;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
var _default = exports.default = QueueTask;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/task/queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
Object.defineProperty(exports, "QueueTask", {
|
7
|
+
enumerable: true,
|
8
|
+
get: function () {
|
9
|
+
return _QueueTask.default;
|
10
|
+
}
|
11
|
+
});
|
12
|
+
Object.defineProperty(exports, "QueueTaskService", {
|
13
|
+
enumerable: true,
|
14
|
+
get: function () {
|
15
|
+
return _QueueService.default;
|
16
|
+
}
|
17
|
+
});
|
18
|
+
var _QueueService = _interopRequireDefault(require("./QueueService"));
|
19
|
+
var _QueueTask = _interopRequireDefault(require("./QueueTask"));
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import TaskServiceBase from '../TaskServiceBase';
|
2
|
+
import ScheduleTask from './SchedulerTask';
|
3
|
+
declare class SchedulerTaskService extends TaskServiceBase {
|
4
|
+
private jobs;
|
5
|
+
init(): Promise<void>;
|
6
|
+
registerJob(job: ScheduleTask): Promise<void>;
|
7
|
+
private importAllJobs;
|
8
|
+
private processAllJobs;
|
9
|
+
}
|
10
|
+
export default SchedulerTaskService;
|
11
|
+
//# sourceMappingURL=SchedulerService.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SchedulerService.d.ts","sourceRoot":"","sources":["../../../../src/services/task/scheduler/SchedulerService.ts"],"names":[],"mappings":"AAGA,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAE3C,cAAM,oBAAqB,SAAQ,eAAe;IAChD,OAAO,CAAC,IAAI,CAAiB;IAEvB,IAAI;IAYG,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAG5C,aAAa;YAcb,cAAc;CAQ7B;AAED,eAAe,oBAAoB,CAAC"}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _fs = require("fs");
|
8
|
+
var _nodeSchedule = require("node-schedule");
|
9
|
+
var _app = require("../../../app");
|
10
|
+
var _TaskServiceBase = _interopRequireDefault(require("../TaskServiceBase"));
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
12
|
+
class SchedulerTaskService extends _TaskServiceBase.default {
|
13
|
+
jobs;
|
14
|
+
async init() {
|
15
|
+
if (!this.jobsPath) {
|
16
|
+
return this.log('Tasks file path not found!', 'danger');
|
17
|
+
}
|
18
|
+
this.jobs = [];
|
19
|
+
this.log('Initializing jobs...', 'info');
|
20
|
+
await this.importAllJobs();
|
21
|
+
await this.processAllJobs();
|
22
|
+
this.log('All jobs initializeds...', 'info');
|
23
|
+
}
|
24
|
+
async registerJob(job) {
|
25
|
+
this.jobs.push(job);
|
26
|
+
}
|
27
|
+
async importAllJobs() {
|
28
|
+
if (!(0, _fs.existsSync)(this.jobsPath)) (0, _fs.mkdirSync)(this.jobsPath, {
|
29
|
+
recursive: true
|
30
|
+
});
|
31
|
+
for (const handlerFile of (0, _fs.readdirSync)(this.jobsPath)) {
|
32
|
+
try {
|
33
|
+
const job = require(`${this.jobsPath}/${handlerFile}`).default;
|
34
|
+
const jobInstance = job.singleton();
|
35
|
+
this.jobs.push(jobInstance);
|
36
|
+
} catch (error) {
|
37
|
+
new _app.ErrorHandler(`Falha ao iniciar um ou mais jobs: ${handlerFile}`, error);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
async processAllJobs() {
|
42
|
+
for (const job of this.jobs) {
|
43
|
+
if (!job.getActive()) continue;
|
44
|
+
job.init();
|
45
|
+
(0, _nodeSchedule.scheduleJob)(job.getCronTask(), job.execute.bind(job));
|
46
|
+
this.log(`Job '${job.getName()}' started...`, 'warning');
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
var _default = exports.default = SchedulerTaskService;
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { Singleton } from '../../../app';
|
2
|
+
import { eScheduleTaskInterval } from '../../../contracts/contansts';
|
3
|
+
declare abstract class ScheduleTask extends Singleton {
|
4
|
+
execute(): Promise<void>;
|
5
|
+
init(): Promise<void>;
|
6
|
+
onInit(): Promise<void>;
|
7
|
+
getCronTask(): eScheduleTaskInterval;
|
8
|
+
getActive(): boolean;
|
9
|
+
abstract onExecute(): Promise<void>;
|
10
|
+
abstract getName(): string;
|
11
|
+
}
|
12
|
+
export default ScheduleTask;
|
13
|
+
//# sourceMappingURL=SchedulerTask.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SchedulerTask.d.ts","sourceRoot":"","sources":["../../../../src/services/task/scheduler/SchedulerTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,uBAAe,YAAa,SAAQ,SAAS;IAC9B,OAAO;IAGP,IAAI;IAKJ,MAAM;IAGZ,WAAW;IAGX,SAAS;aAIA,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;aAC1B,OAAO,IAAI,MAAM;CAClC;AACD,eAAe,YAAY,CAAC"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _app = require("../../../app");
|
8
|
+
var _contansts = require("../../../contracts/contansts");
|
9
|
+
class ScheduleTask extends _app.Singleton {
|
10
|
+
async execute() {
|
11
|
+
this.onExecute();
|
12
|
+
}
|
13
|
+
async init() {
|
14
|
+
this.onInit();
|
15
|
+
}
|
16
|
+
|
17
|
+
//# Muted methods
|
18
|
+
async onInit() {
|
19
|
+
return;
|
20
|
+
}
|
21
|
+
getCronTask() {
|
22
|
+
return _contansts.eScheduleTaskInterval.DEFAULT;
|
23
|
+
}
|
24
|
+
getActive() {
|
25
|
+
return true;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
var _default = exports.default = ScheduleTask;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/task/scheduler/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
Object.defineProperty(exports, "ScheduleTask", {
|
7
|
+
enumerable: true,
|
8
|
+
get: function () {
|
9
|
+
return _SchedulerTask.default;
|
10
|
+
}
|
11
|
+
});
|
12
|
+
Object.defineProperty(exports, "SchedulerTaskService", {
|
13
|
+
enumerable: true,
|
14
|
+
get: function () {
|
15
|
+
return _SchedulerService.default;
|
16
|
+
}
|
17
|
+
});
|
18
|
+
var _SchedulerService = _interopRequireDefault(require("./SchedulerService"));
|
19
|
+
var _SchedulerTask = _interopRequireDefault(require("./SchedulerTask"));
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
package/package.json
CHANGED
package/lib/services/task.d.ts
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
import type { Job } from 'bullmq';
|
2
|
-
import { Queue, Worker } from 'bullmq';
|
3
|
-
import Service from '../app/service';
|
4
|
-
import Singleton from '../app/singleton';
|
5
|
-
import { IService } from '../contracts/service';
|
6
|
-
declare abstract class TaskServiceBase extends Service implements IService {
|
7
|
-
protected jobsPath: string;
|
8
|
-
abstract init(): Promise<void>;
|
9
|
-
abstract registerJob(...args: any[]): Promise<void>;
|
10
|
-
setTaskPath(path: string): void;
|
11
|
-
}
|
12
|
-
export declare class TaskSchedulingService extends TaskServiceBase {
|
13
|
-
private jobs;
|
14
|
-
init(): Promise<void>;
|
15
|
-
registerJob(job: SchedulingTask): Promise<void>;
|
16
|
-
private importAllJobs;
|
17
|
-
private processAllJobs;
|
18
|
-
}
|
19
|
-
export declare abstract class SchedulingTask extends Singleton {
|
20
|
-
protected abstract cron: string;
|
21
|
-
protected abstract name: string;
|
22
|
-
protected abstract active: boolean;
|
23
|
-
abstract handler(): Promise<void>;
|
24
|
-
getJobTime(): string;
|
25
|
-
getActive(): boolean;
|
26
|
-
getJobName(): string;
|
27
|
-
}
|
28
|
-
export declare class TaskQueueService extends TaskServiceBase {
|
29
|
-
private jobs;
|
30
|
-
private connection;
|
31
|
-
init(): Promise<void>;
|
32
|
-
registerJob(job: QueueTask<any>): Promise<void>;
|
33
|
-
private importAllJobs;
|
34
|
-
private processAllJobs;
|
35
|
-
startTask(task: QueueTask<any>): Promise<void>;
|
36
|
-
}
|
37
|
-
export declare abstract class QueueTask<DataType, ResultType = any, NameType extends string = string> extends Singleton {
|
38
|
-
protected queue: Queue;
|
39
|
-
protected worker: Worker;
|
40
|
-
protected abstract active: boolean;
|
41
|
-
protected abstract queueName: string;
|
42
|
-
initialize(): void;
|
43
|
-
abstract init(): Promise<void>;
|
44
|
-
addJob(data: DataType): Promise<void>;
|
45
|
-
getQueue(): Queue<any, any, string>;
|
46
|
-
setQueue(queue: Queue): void;
|
47
|
-
getWorker(): Worker<any, any, string>;
|
48
|
-
setWorker(worker: Worker): void;
|
49
|
-
getActive(): boolean;
|
50
|
-
getQueueName(): string;
|
51
|
-
abstract handle(_job: Job<DataType, ResultType, NameType>, _token?: string): Promise<ResultType>;
|
52
|
-
}
|
53
|
-
export {};
|
54
|
-
//# sourceMappingURL=task.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/services/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,GAAG,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,uBAAe,eAAgB,SAAQ,OAAQ,YAAW,QAAQ;IAChE,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnD,WAAW,CAAC,IAAI,EAAE,MAAM;CAGzB;AAGD,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,OAAO,CAAC,IAAI,CAAmB;IAEzB,IAAI;IAYG,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YAG9C,aAAa;YAcb,cAAc;CAO7B;AACD,8BAAsB,cAAe,SAAQ,SAAS;IACpD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE1B,UAAU;IAGV,SAAS;IAGT,UAAU;CAGlB;AAGD,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,UAAU,CAAoB;IAEhC,IAAI;IAeG,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAI9C,aAAa;YAUb,cAAc;IAMf,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;CAiB5C;AACD,8BAAsB,SAAS,CAC7B,QAAQ,EACR,UAAU,GAAG,GAAG,EAChB,QAAQ,SAAS,MAAM,GAAG,MAAM,CAChC,SAAQ,SAAS;IACjB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACvB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE9B,UAAU;IAoBjB,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAEjB,MAAM,CAAC,IAAI,EAAE,QAAQ;IAI3B,QAAQ;IAGR,QAAQ,CAAC,KAAK,EAAE,KAAK;IAGrB,SAAS;IAGT,SAAS,CAAC,MAAM,EAAE,MAAM;IAGxB,SAAS;IAIT,YAAY,IAAI,MAAM;IAG7B,QAAQ,CAAC,MAAM,CAEb,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAEzC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC;CACvB"}
|
package/lib/services/task.js
DELETED
@@ -1,164 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.TaskSchedulingService = exports.TaskQueueService = exports.SchedulingTask = exports.QueueTask = void 0;
|
7
|
-
var _bullmq = require("bullmq");
|
8
|
-
var _fs = require("fs");
|
9
|
-
var _nodeSchedule = require("node-schedule");
|
10
|
-
var _service = _interopRequireDefault(require("../app/service"));
|
11
|
-
var _singleton = _interopRequireDefault(require("../app/singleton"));
|
12
|
-
var _app = require("../app");
|
13
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
14
|
-
//* Base
|
15
|
-
class TaskServiceBase extends _service.default {
|
16
|
-
jobsPath;
|
17
|
-
setTaskPath(path) {
|
18
|
-
this.jobsPath = path;
|
19
|
-
}
|
20
|
-
}
|
21
|
-
|
22
|
-
//* Scheduler
|
23
|
-
class TaskSchedulingService extends TaskServiceBase {
|
24
|
-
jobs;
|
25
|
-
async init() {
|
26
|
-
if (!this.jobsPath) {
|
27
|
-
return this.log('Tasks file path not found!', 'danger');
|
28
|
-
}
|
29
|
-
this.jobs = [];
|
30
|
-
this.log('Initializing jobs...', 'info');
|
31
|
-
await this.importAllJobs();
|
32
|
-
await this.processAllJobs();
|
33
|
-
this.log('All jobs initializeds...', 'info');
|
34
|
-
}
|
35
|
-
async registerJob(job) {
|
36
|
-
this.jobs.push(job);
|
37
|
-
}
|
38
|
-
async importAllJobs() {
|
39
|
-
if (!(0, _fs.existsSync)(this.jobsPath)) (0, _fs.mkdirSync)(this.jobsPath, {
|
40
|
-
recursive: true
|
41
|
-
});
|
42
|
-
for (const handlerFile of (0, _fs.readdirSync)(this.jobsPath)) {
|
43
|
-
try {
|
44
|
-
const job = require(`${this.jobsPath}/${handlerFile}`).default;
|
45
|
-
const jobInstance = job.singleton();
|
46
|
-
this.jobs.push(jobInstance);
|
47
|
-
} catch (error) {
|
48
|
-
new _app.ErrorHandler(`Falha ao iniciar um ou mais jobs: ${handlerFile}`, error);
|
49
|
-
}
|
50
|
-
}
|
51
|
-
}
|
52
|
-
async processAllJobs() {
|
53
|
-
for (const job of this.jobs) {
|
54
|
-
if (!job.getActive()) continue;
|
55
|
-
(0, _nodeSchedule.scheduleJob)(job.getJobTime(), job.handler.bind(job));
|
56
|
-
this.log(`Job '${job.getJobName()}' started...`, 'warning');
|
57
|
-
}
|
58
|
-
}
|
59
|
-
}
|
60
|
-
exports.TaskSchedulingService = TaskSchedulingService;
|
61
|
-
class SchedulingTask extends _singleton.default {
|
62
|
-
getJobTime() {
|
63
|
-
return this.cron;
|
64
|
-
}
|
65
|
-
getActive() {
|
66
|
-
return this.active;
|
67
|
-
}
|
68
|
-
getJobName() {
|
69
|
-
return this.name;
|
70
|
-
}
|
71
|
-
}
|
72
|
-
|
73
|
-
//* Queue
|
74
|
-
exports.SchedulingTask = SchedulingTask;
|
75
|
-
class TaskQueueService extends TaskServiceBase {
|
76
|
-
jobs;
|
77
|
-
connection;
|
78
|
-
async init() {
|
79
|
-
this.jobs = [];
|
80
|
-
this.connection = {
|
81
|
-
host: _app.Core.settings.getCache().host,
|
82
|
-
port: Number(_app.Core.settings.getCache().port),
|
83
|
-
password: _app.Core.settings.getCache().password
|
84
|
-
};
|
85
|
-
this.log('Initializing jobs...', 'info');
|
86
|
-
await this.importAllJobs();
|
87
|
-
await this.processAllJobs();
|
88
|
-
this.log('All jobs initializeds...', 'info');
|
89
|
-
}
|
90
|
-
async registerJob(job) {
|
91
|
-
this.jobs.push(job);
|
92
|
-
}
|
93
|
-
async importAllJobs() {
|
94
|
-
if (!(0, _fs.existsSync)(this.jobsPath)) (0, _fs.mkdirSync)(this.jobsPath, {
|
95
|
-
recursive: true
|
96
|
-
});
|
97
|
-
for (const handlerFile of (0, _fs.readdirSync)(this.jobsPath)) {
|
98
|
-
const job = require(`${this.jobsPath}/${handlerFile}`).default;
|
99
|
-
const jobInstance = job.singleton();
|
100
|
-
this.jobs.push(jobInstance);
|
101
|
-
}
|
102
|
-
}
|
103
|
-
async processAllJobs() {
|
104
|
-
for (const job of this.jobs) {
|
105
|
-
this.startTask(job);
|
106
|
-
}
|
107
|
-
}
|
108
|
-
async startTask(task) {
|
109
|
-
if (!task.getActive()) return;
|
110
|
-
const queue = new _bullmq.Queue(task.getQueueName(), {
|
111
|
-
connection: this.connection
|
112
|
-
});
|
113
|
-
const worker = new _bullmq.Worker(task.getQueueName(), task.handle.bind(task), {
|
114
|
-
connection: this.connection
|
115
|
-
});
|
116
|
-
task.setQueue(queue);
|
117
|
-
task.setWorker(worker);
|
118
|
-
task.init();
|
119
|
-
this.log(`Job '${task.getQueueName()}' started...`, 'warning');
|
120
|
-
}
|
121
|
-
}
|
122
|
-
exports.TaskQueueService = TaskQueueService;
|
123
|
-
class QueueTask extends _singleton.default {
|
124
|
-
queue;
|
125
|
-
worker;
|
126
|
-
initialize() {
|
127
|
-
this.queue = new _bullmq.Queue(this.getQueueName(), {
|
128
|
-
// Configurações do Redis
|
129
|
-
connection: {
|
130
|
-
host: 'localhost',
|
131
|
-
port: 6379
|
132
|
-
}
|
133
|
-
});
|
134
|
-
this.worker = new _bullmq.Worker(this.getQueueName(), this.handle.bind(this), {
|
135
|
-
connection: {
|
136
|
-
host: 'localhost',
|
137
|
-
port: 6379
|
138
|
-
}
|
139
|
-
});
|
140
|
-
}
|
141
|
-
async addJob(data) {
|
142
|
-
await this.queue.add(this.getQueueName(), data);
|
143
|
-
this.log('Nova tarefa disponível.', 'comment');
|
144
|
-
}
|
145
|
-
getQueue() {
|
146
|
-
return this.queue;
|
147
|
-
}
|
148
|
-
setQueue(queue) {
|
149
|
-
this.queue = queue;
|
150
|
-
}
|
151
|
-
getWorker() {
|
152
|
-
return this.worker;
|
153
|
-
}
|
154
|
-
setWorker(worker) {
|
155
|
-
this.worker = worker;
|
156
|
-
}
|
157
|
-
getActive() {
|
158
|
-
return this.active;
|
159
|
-
}
|
160
|
-
getQueueName() {
|
161
|
-
return this.queueName;
|
162
|
-
}
|
163
|
-
}
|
164
|
-
exports.QueueTask = QueueTask;
|