From fd68a32f4a1863ccaca47947eb065fd6d007d487 Mon Sep 17 00:00:00 2001 From: Ruslan Gainutdinov Date: Thu, 19 Mar 2020 20:21:47 +0200 Subject: [PATCH 1/6] eventTime can be ommited when publishing event --- core/src/abstractions/persistence-provider.ts | 2 +- core/src/abstractions/workflow-host.ts | 2 +- core/src/models/event.ts | 2 +- core/src/services/event-queue-worker.ts | 2 +- core/src/services/memory-persistence-provider.ts | 4 ++-- core/src/services/poll-worker.ts | 4 ++-- core/src/services/workflow-host.ts | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/src/abstractions/persistence-provider.ts b/core/src/abstractions/persistence-provider.ts index 35b3fde..71faac4 100644 --- a/core/src/abstractions/persistence-provider.ts +++ b/core/src/abstractions/persistence-provider.ts @@ -8,7 +8,7 @@ export interface IPersistenceProvider { getRunnableInstances(): Promise>; createEventSubscription(subscription: EventSubscription): Promise; - getSubscriptions(eventName: string, eventKey: string, asOf: Date): Promise>; + getSubscriptions(eventName: string, eventKey: string, asOf?: Date): Promise>; terminateSubscription(id: string): Promise; createEvent(event: Event): Promise; diff --git a/core/src/abstractions/workflow-host.ts b/core/src/abstractions/workflow-host.ts index 84c0653..1a7df45 100644 --- a/core/src/abstractions/workflow-host.ts +++ b/core/src/abstractions/workflow-host.ts @@ -6,7 +6,7 @@ export interface IWorkflowHost { stop(); startWorkflow(id: string, version: number, data: any): Promise; registerWorkflow(workflow: new () => WorkflowBase); - publishEvent(eventName: string, eventKey: string, eventData: any, eventTime: Date): Promise; + publishEvent(eventName: string, eventKey: string, eventData: any, eventTime?: Date): Promise; suspendWorkflow(id: string): Promise; resumeWorkflow(id: string): Promise; terminateWorkflow(id: string): Promise; diff --git a/core/src/models/event.ts b/core/src/models/event.ts index 864bf04..5ba24ec 100644 --- a/core/src/models/event.ts +++ b/core/src/models/event.ts @@ -3,6 +3,6 @@ export class Event { public eventName: string; public eventKey: string; public eventData: any; - public eventTime: Date; + public eventTime?: Date; public isProcessed: boolean; } \ No newline at end of file diff --git a/core/src/services/event-queue-worker.ts b/core/src/services/event-queue-worker.ts index ea3dd6e..8daa529 100644 --- a/core/src/services/event-queue-worker.ts +++ b/core/src/services/event-queue-worker.ts @@ -57,7 +57,7 @@ export class EventQueueWorker implements IBackgroundWorker { if (gotLock) { try { let evt = await self.persistence.getEvent(eventId); - if (evt.eventTime <= new Date()) + if (evt.eventTime === undefined || evt.eventTime <= new Date()) { let subs = await self.persistence.getSubscriptions(evt.eventName, evt.eventKey, evt.eventTime); let success = true; diff --git a/core/src/services/memory-persistence-provider.ts b/core/src/services/memory-persistence-provider.ts index 988eb84..0f6cc4c 100644 --- a/core/src/services/memory-persistence-provider.ts +++ b/core/src/services/memory-persistence-provider.ts @@ -40,8 +40,8 @@ export class MemoryPersistenceProvider implements IPersistenceProvider { wfes_subscriptions.push(subscription); } - public async getSubscriptions(eventName: string, eventKey: string, asOf: Date): Promise> { - return wfes_subscriptions.filter(x => x.eventName == eventName && x.eventKey == eventKey && x.subscribeAsOf <= asOf); + public async getSubscriptions(eventName: string, eventKey: string, asOf?: Date): Promise> { + return wfes_subscriptions.filter(x => x.eventName == eventName && x.eventKey == eventKey && (asOf ? x.subscribeAsOf <= asOf : true)); } public async terminateSubscription(id: string): Promise { diff --git a/core/src/services/poll-worker.ts b/core/src/services/poll-worker.ts index 02b363c..cc9dafb 100644 --- a/core/src/services/poll-worker.ts +++ b/core/src/services/poll-worker.ts @@ -22,7 +22,7 @@ export class PollWorker implements IBackgroundWorker { private processTimer: any; public start() { - this.processTimer = setInterval(this.process, 10000, this); + this.processTimer = setInterval(this.process, 500, this); } public stop() { @@ -31,7 +31,7 @@ export class PollWorker implements IBackgroundWorker { clearInterval(this.processTimer); } - private async process(self: PollWorker): Promise { + private async process(self: PollWorker): Promise { self.logger.info("pollRunnables " + " - now = " + Date.now()); //TODO: lock try { diff --git a/core/src/services/workflow-host.ts b/core/src/services/workflow-host.ts index dff2fea..1347433 100644 --- a/core/src/services/workflow-host.ts +++ b/core/src/services/workflow-host.ts @@ -75,7 +75,7 @@ export class WorkflowHost implements IWorkflowHost { this.registry.registerWorkflow(new workflow()); } - public async publishEvent(eventName: string, eventKey: string, eventData: any, eventTime: Date): Promise { + public async publishEvent(eventName: string, eventKey: string, eventData: any, eventTime?: Date): Promise { //todo: check host status this.logger.info("Publishing event %s %s", eventName, eventKey); From a6fca16278ea14e8dd5faaf504d4877e5cf1dd6f Mon Sep 17 00:00:00 2001 From: Ruslan Gainutdinov Date: Thu, 19 Mar 2020 20:23:15 +0200 Subject: [PATCH 2/6] Return poll worker interval --- core/src/services/poll-worker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/services/poll-worker.ts b/core/src/services/poll-worker.ts index cc9dafb..fdda1b0 100644 --- a/core/src/services/poll-worker.ts +++ b/core/src/services/poll-worker.ts @@ -22,7 +22,7 @@ export class PollWorker implements IBackgroundWorker { private processTimer: any; public start() { - this.processTimer = setInterval(this.process, 500, this); + this.processTimer = setInterval(this.process, 10000, this); } public stop() { From e1d2930763874aa2781ae791d219ab79f4227ca2 Mon Sep 17 00:00:00 2001 From: Ruslan Gainutdinov Date: Thu, 19 Mar 2020 20:26:01 +0200 Subject: [PATCH 3/6] Return poll worker interval --- core/src/services/poll-worker.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/services/poll-worker.ts b/core/src/services/poll-worker.ts index fdda1b0..a8e5edf 100644 --- a/core/src/services/poll-worker.ts +++ b/core/src/services/poll-worker.ts @@ -31,7 +31,7 @@ export class PollWorker implements IBackgroundWorker { clearInterval(this.processTimer); } - private async process(self: PollWorker): Promise { + private async process(self: PollWorker): Promise { self.logger.info("pollRunnables " + " - now = " + Date.now()); //TODO: lock try { @@ -54,4 +54,4 @@ export class PollWorker implements IBackgroundWorker { self.logger.error("Error running poll: " + err); } } -} \ No newline at end of file +} From 2ee98c08e296e12fbf4d10b1e6c0c364a418f086 Mon Sep 17 00:00:00 2001 From: Ruslan Gainutdinov Date: Thu, 19 Mar 2020 20:27:56 +0200 Subject: [PATCH 4/6] Return poll worker interval --- core/package-lock.json | 147 +++++++++++++++++++++++++++++++ core/src/services/poll-worker.ts | 2 +- 2 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 core/package-lock.json diff --git a/core/package-lock.json b/core/package-lock.json new file mode 100644 index 0000000..863b779 --- /dev/null +++ b/core/package-lock.json @@ -0,0 +1,147 @@ +{ + "name": "workflow-es", + "version": "2.3.5", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/jasmine": { + "version": "2.8.16", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.16.tgz", + "integrity": "sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g==", + "dev": true + }, + "@types/node": { + "version": "6.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.14.9.tgz", + "integrity": "sha512-leP/gxHunuazPdZaCvsCefPQxinqUDsCxCR5xaDUrY2MkYxQRFZZwU5e7GojyYsGB7QVtCi7iVEl/hoFXQYc+w==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inversify": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/inversify/-/inversify-4.13.0.tgz", + "integrity": "sha512-O5d8y7gKtyRwrvTLZzYET3kdFjqUy58sGpBYMARF13mzqDobpfBXVOPLH7HmnD2VR6Q+1HzZtslGvsdQfeb0SA==" + }, + "jasmine": { + "version": "2.99.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.99.0.tgz", + "integrity": "sha1-jKctEC5jm4Z8ZImFbg4YqceqQrc=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.99.0" + } + }, + "jasmine-core": { + "version": "2.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", + "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/core/src/services/poll-worker.ts b/core/src/services/poll-worker.ts index a8e5edf..02b363c 100644 --- a/core/src/services/poll-worker.ts +++ b/core/src/services/poll-worker.ts @@ -54,4 +54,4 @@ export class PollWorker implements IBackgroundWorker { self.logger.error("Error running poll: " + err); } } -} +} \ No newline at end of file From 26a6eb45354ae2709e7290b4641f44b99cc5468b Mon Sep 17 00:00:00 2001 From: Ruslan Gainutdinov Date: Thu, 19 Mar 2020 20:31:50 +0200 Subject: [PATCH 5/6] Remove package-lock.json --- core/package-lock.json | 147 ----------------------------------------- 1 file changed, 147 deletions(-) delete mode 100644 core/package-lock.json diff --git a/core/package-lock.json b/core/package-lock.json deleted file mode 100644 index 863b779..0000000 --- a/core/package-lock.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "name": "workflow-es", - "version": "2.3.5", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@types/jasmine": { - "version": "2.8.16", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.16.tgz", - "integrity": "sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g==", - "dev": true - }, - "@types/node": { - "version": "6.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.14.9.tgz", - "integrity": "sha512-leP/gxHunuazPdZaCvsCefPQxinqUDsCxCR5xaDUrY2MkYxQRFZZwU5e7GojyYsGB7QVtCi7iVEl/hoFXQYc+w==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "inversify": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/inversify/-/inversify-4.13.0.tgz", - "integrity": "sha512-O5d8y7gKtyRwrvTLZzYET3kdFjqUy58sGpBYMARF13mzqDobpfBXVOPLH7HmnD2VR6Q+1HzZtslGvsdQfeb0SA==" - }, - "jasmine": { - "version": "2.99.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.99.0.tgz", - "integrity": "sha1-jKctEC5jm4Z8ZImFbg4YqceqQrc=", - "dev": true, - "requires": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.99.0" - } - }, - "jasmine-core": { - "version": "2.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", - "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - } - } -} From 5421ebb5492ac876eacdfddd3028139a4f7a1aca Mon Sep 17 00:00:00 2001 From: Ruslan Gainutdinov Date: Thu, 19 Mar 2020 20:38:14 +0200 Subject: [PATCH 6/6] Added providers --- .../workflow-es-mongodb/src/mongodb-provider.ts | 15 +++++++++++++-- providers/workflow-es-mysql/src/mysql-provider.ts | 10 ++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/providers/workflow-es-mongodb/src/mongodb-provider.ts b/providers/workflow-es-mongodb/src/mongodb-provider.ts index 00dce32..62f3828 100644 --- a/providers/workflow-es-mongodb/src/mongodb-provider.ts +++ b/providers/workflow-es-mongodb/src/mongodb-provider.ts @@ -98,10 +98,11 @@ export class MongoDBPersistence implements IPersistenceProvider { return deferred; } - public async getSubscriptions(eventName: string, eventKey: string, asOf: Date): Promise> { + public async getSubscriptions(eventName: string, eventKey: string, asOf?: Date): Promise> { var self = this; var deferred = new Promise>((resolve, reject) => { - self.subscriptionCollection.find({ eventName: eventName, eventKey: eventKey, subscribeAsOf: { $lt: asOf } }) + if (asOf === undefined) { + self.subscriptionCollection.find({ eventName: eventName, eventKey: eventKey }) .toArray((err, data) => { if (err) reject(err); @@ -109,6 +110,16 @@ export class MongoDBPersistence implements IPersistenceProvider { item.id = item["_id"].toString(); resolve(data); }); + } else { + self.subscriptionCollection.find({ eventName: eventName, eventKey: eventKey, subscribeAsOf: { $lt: asOf } }) + .toArray((err, data) => { + if (err) + reject(err); + for (let item of data) + item.id = item["_id"].toString(); + resolve(data); + }); + } }); return deferred; } diff --git a/providers/workflow-es-mysql/src/mysql-provider.ts b/providers/workflow-es-mysql/src/mysql-provider.ts index 6422585..c4f76ef 100644 --- a/providers/workflow-es-mysql/src/mysql-provider.ts +++ b/providers/workflow-es-mysql/src/mysql-provider.ts @@ -102,11 +102,17 @@ export class MySqlPersistence implements IPersistenceProvider { }); return deferred; } - public async getSubscriptions(eventName: string, eventKey: string, asOf: Date): Promise> { + public async getSubscriptions(eventName: string, eventKey: string, asOf?: Date): Promise> { var deferred = new Promise>( async (resolve, reject) => { try { - var instances = await subscriptionCollection.findAll({ + var instances = asOf === undefined ? await subscriptionCollection.findAll({ + where: { + eventName: eventName, + eventKey: eventKey + }, + include: [Workflow] + }) : await subscriptionCollection.findAll({ where: { eventName: eventName, eventKey: eventKey,