-
Notifications
You must be signed in to change notification settings - Fork 48
/
Copy path06-deferred-steps.js
46 lines (40 loc) · 1.31 KB
/
06-deferred-steps.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const workflow_es = require("workflow-es");
class DeferredStep extends workflow_es.StepBody {
run(context) {
if (!context.persistenceData) {
console.log("going to sleep...");
return workflow_es.ExecutionResult.sleep(new Date(Date.now() + 5000), true);
}
else {
console.log("waking up...");
return workflow_es.ExecutionResult.next();
}
}
}
class DeferSample_Workflow {
constructor() {
this.id = "defer-sample";
this.version = 1;
}
build(builder) {
builder
.startWith(DeferredStep)
.thenRun(context => {
console.log("done");
return workflow_es.ExecutionResult.next();
});
}
}
async function main() {
var config = workflow_es.configureWorkflow();
//config.useLogger(new workflow_es.ConsoleLogger());
//let mongoPersistence = new workflow_mongo.MongoDBPersistence("mongodb://127.0.0.1:27017/workflow-node");
//await mongoPersistence.connect;
//config.usePersistence(mongoPersistence);
var host = config.getHost();
host.registerWorkflow(new DeferSample_Workflow());
await host.start();
let id = await host.startWorkflow("defer-sample", 1);
console.log("Started workflow: " + id);
}
main();