サービスメソッドを約束として設定し、早期に解決してください。たとえば、これを達成するためにbluebird
をインポートできます。お使いのコントローラで :
myPostEndpoint: (req, res) => {
return MyProcessorService.initProcessing(req.body).then(res.json);
}
そして、あなたのサービスMyProcessorService
に:
var Promise = import('bluebird');
//... other init code
module.exports = {
initProcessing: data => {
//do some validation...
// then just resolve and continue
Promise.resolve({ status: 'processing'});
return MyProcessorService.step1(data)
.then(MyProcessorService.step2)
.then(MyProcessorService.step3)//and so on....
},
step1: dataFromInit => {
//do stuff and resolve for step2
},
step2: dataFromStep1 => {
//do stuff and resolve for step3
},
step3: dataFromStep2 => {
//do stuff and resolve
},
//and so on
}
あなたはまたにジョブをオフに送信するBullとRedisようなものでワーカーキューを設定でき、WorkerServiceで実行したり、別のワーカーアプリ。