求推荐node定时任务框架~~
发布于 6 年前 作者 iori2882 9287 次预览 最后一次回复是 6 年前 来自 问答
谢谢大家,百度了一下,网络上推荐最多的是node-schedule,但是这个好像不维护了.agenda是不是只支持MongoDB数据库?麻烦大家帮忙推荐一个定时任务的框架! 还有一个问题,现在使用的PM2的集群模式,这样会导致同一个定时任务执行多遍的问题,现在系统访问量没有那么大,又不想单独出个服务器跑定时任务,看到有如下解决方案能行么?限定死只在PM2的0号进程执行任务! 目前使用框架express
if (process.env.NODE_APP_INSTANCE === ‘0’) { … // 执行任务 }
18 回复
试过,可行。你也可以测一下
@JianmingXia 那我也试试,好慌啊 生产环境这么用总感觉哪里有点不对 ~~~~~~~~
bull 或者 bullmq,支持定时任务用 redis。
通过redis实现锁。 如果pm号为0的进程,正好挂了,岂不是不执行了? 我之前在Laravel5.2参考新版本实现过,你可以参考下了解概念,相信你也能很容易做出来的。 Laravel-onOneServer
可以用这个 https://github.com/miaowing/nest-schedule
更多资料: https://docs.nestjs.cn/6/awesome
开启多实例的话,就得借助外部的 redis 了
@VoganWong PHP-fpm 由于没有常驻内存,做定时任务很蠢~ 参考laravel 方式只能是更麻烦~
@zuohuadong 你可能没看楼主的需求? 另外我让他参考的是使用redis锁,而不是Laravel 懂?
可以看看egg-schedule~
个人感觉蛮好用的~
@nnliang 声明式
动态
参考: https://docs.nestjs.com/techniques/task-scheduling 例子:https://github.com/nestjs/nest/tree/master/sample/27-scheduling
@hxddev 谢谢 我看看去
@VoganWong 十分感谢 我试试
@zuohuadong 目前使用框架express 这个是不是我用不了啊
@nnliang 目前使用框架express 好像这个我用不了
启动新的进程专门做定时任务就可以了,不要放在网站里面。
@zuohuadong 你推nest 有点上头了老哥~ 不管你用什么框架, 我只看见
new CronJob就足矣~一般,定时任务最好的单独出来一个服务,不必放新服务器,同一个服务器就好,这样用什么定时任务的库关系都不大,在小流量场景下。
可以用函数计算,建立一个定时器就可以,开放一个http触发接口,做好token验证就好了 函数计算