求助, nodejs 有什么简单的按间隔调度的库

64 天前
 rizon

核心需求:nodejs 库,当上一个任务完成后间隔一定时间调度下一个任务。

求助大佬们,有这样的开源库吗。

另外问个问题,在一个自托管运行的 nextjs 项目里,启动调度任务的代码,写在哪个位置,可以让代码启动的时候自动启动呢?

2257 次点击
所在节点    程序员
21 条回复
243634473
64 天前
青龙面板
sankooc
64 天前
远古时期 有个 async 库有这个功能
Belmode
64 天前
node-cron
guiling
64 天前
一般的库都是定时"开始"执行任务的
如果想根据上一个任务结束时间来延时,可以在任务结束时动态创建下一个任务,大部分库都支持
要求不高的话 settimeout 都行
Jven
64 天前
xmumiffy
64 天前
直接每个任务加个 sleep
rocmax
64 天前
nextjs custom server 启动的时候

https://nextjs.org/docs/pages/building-your-application/configuring/custom-server

不过我建议在 nextjs 只开发处理的 api ,使用外部定时调用服务比如 k8s 的 cronjob 来发请求给 api ,这样扩展性好点。
leopod1995
64 天前
有固定执行时间/周期,大部分用 cron 类就可以满足。

对待执行时间长,严格要求上一个结束后隔固定时间才能执行的,这种场景其实如楼上所说,setTimeout 不失为一种好的方案。
dudubaba
64 天前
走定时任务机制啊,任务成功后写入下一个任务 id 到 redis ,然后定时拉取 redis 不是更好
BraydenCai229
64 天前
node-cron
wangtian2020
64 天前
setTimeout() 不行吗
上一个任务完成时创建一个 setTimeout()
xudong
64 天前
nextjs 我估计你的运行时可能是无服务器的,那么你最好把逻辑写成一个 http 接口,外部定时请求这个接口。可以用其他函数计算服务做定时触发调用。
nitmali
64 天前
rxjs
churchill
64 天前
找个队列实现,自己写点任务逻辑不比各种定时器稳妥吗
比如 bullmq
sjhhjx0122
64 天前
简单的就 setTimeout,复杂的用 rxjs
rizon
64 天前
@nitmali
@sjhhjx0122 rxjs 不是一个响应式框架吗,
yh7gdiaYW
63 天前
定时任务的话可以用 pm2 ,非常好用以至于我把现在 python 组里的后端部署模板也改成用这个了。
要上一个任务完成后再间隔一段时间执行,可以把触发频率设置的高一点,在任务开头检测下距上次完成过了多久
yh7gdiaYW
63 天前
或者干脆 while true+setTimeout
Al0rid4l
63 天前
rizon
63 天前
@yh7gdiaYW #17 pm2 不是 nodejs 管理的吗,居然还可以做这个,我去看看。谢谢~


@Al0rid4l #19 哇,好多哈哈哈。看来也是挑了很久。我去看看这些,谢谢~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1020738

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX