|
| 1 | +var workflow = require('./dist'); |
| 2 | + |
| 3 | +var manager = new workflow.WorkflowManager(); |
| 4 | + |
| 5 | +class LogProducer extends workflow.Producer { |
| 6 | + introduce() { return ''; } |
| 7 | + |
| 8 | + parameterStructure() { |
| 9 | + return { |
| 10 | + log: { |
| 11 | + type: workflow.ParameterType.String, |
| 12 | + optional: true, |
| 13 | + default: '', |
| 14 | + description: 'Log content' |
| 15 | + } |
| 16 | + }; |
| 17 | + } |
| 18 | + |
| 19 | + _produce(input) { |
| 20 | + const content = this.parameters.get('log'); |
| 21 | + console.log(this.id + ': ' + content); |
| 22 | + return input; |
| 23 | + } |
| 24 | +} |
| 25 | + |
| 26 | +var entrance = new LogProducer('entrance'); |
| 27 | + |
| 28 | +var test1 = new LogProducer('test1'); |
| 29 | +var test2 = new LogProducer('test2'); |
| 30 | +var test3 = new LogProducer('test3'); |
| 31 | +var test4 = new LogProducer('test4'); |
| 32 | +var test5 = new LogProducer('test5'); |
| 33 | +var test6 = new LogProducer('test6'); |
| 34 | + |
| 35 | +entrance.initialize({ log: 'entrance' }); |
| 36 | +test1.initialize({ log: '1' }); |
| 37 | +test2.initialize({ log: '2' }); |
| 38 | +test3.initialize({ log: '3' }); |
| 39 | +test4.initialize({ log: '4' }); |
| 40 | +test5.initialize({ log: '5' }); |
| 41 | +test6.initialize({ log: '6' }); |
| 42 | + |
| 43 | +entrance.relation(new workflow.Relation(entrance, test1)); |
| 44 | +entrance.relation(new workflow.Relation(entrance, test2)); |
| 45 | +entrance.relation(new workflow.Relation(entrance, test3)); |
| 46 | +entrance.relation(new workflow.Relation(entrance, test4)); |
| 47 | +test1.relation(new workflow.Relation(test1, test4, 'log')); |
| 48 | +test2.relation(new workflow.Relation(test2, test5, 'log')); |
| 49 | +test3.relation(new workflow.Relation(test3, test6, 'log')); |
| 50 | +test4.relation(new workflow.Relation(test4, test5)); |
| 51 | +test5.relation(new workflow.Relation(test5, test6)); |
| 52 | + |
| 53 | +manager.entrance = entrance; |
| 54 | +manager.output = test6 |
| 55 | +manager.run(0) |
| 56 | + .then(async v => console.log({ producer: v.data[0].producer, data: JSON.stringify(v.data[0].data) })) |
| 57 | + .catch(async e => console.log('c' + e)); |
0 commit comments