egg 如何后台执行某个任务?

小程序屏蔽了阿里云的OSS


所以程序的上传先传到应用服务器,返回成功代码和临时地址给前台,然后应用服务器在后台上传到阿里云oss,再写数据库,返回前台。


try {

          yield awaitWriteStream(stream.pipe(writeStream));

          yield this.ctx.service.updatefile.updateToss(target, upFileName, uid);

          return { code: 0, msg: '', data: tmpPath };

        } catch (err) {

          yield sendToWormhole(stream);

          throw err;

        }

这里是上传到应用服务器的


我的问题是,


yield this.ctx.service.updatefile.updateToss(target, upFileName, uid);


在updateToss这个function里,有一个update数据库动作,一个上传文件动作,都是yield。


这任务实际上是希望在后台执行的,所以那个return的问题应该如何处理,其实我是想把这句放到后台执行,不影响前台的。


尝试了on监视,但是不支持yield

https://img4.mukewang.com/5c6cfa0d0001ae3107940310.jpg

凤凰求蛊
浏览 435回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript