CNode

Nodejs定点定时器问题(请高手来看下)

Dduyinghua发布于13 年前最后回复13 年前14 回复15088 浏览0 收藏

如果想要在程序里面做一个定时更新数据库数据的定时器,能有什么实现思路吗,比如我想在每天17:00更新一遍数据库数据(比如是把某个字段加1),有什么实现思路吗,或者如果用setInterval每隔24小时执行会不会有什么问题啊?以前用这个函数没定时过这么久的定时,怕出问题呢。

查看回复

回复 (14)

H
hexie#1·13 年前

虽然有土办法,但还是期待有完备的思路

H
hexie#2·13 年前
引用 hexie虽然有土办法,但还是期待有完备的思路

我用的方法 是linux 的cron 计划任务,执行某个特定脚本。修改数据库的值。

L
leapon#3·13 年前

用 setInterval 有一个多小时的限制,可以用 setInterval 嵌套解决。

我也会用 cron 来处理,好控制。

D
duyinghua#4·13 年前
引用 leapon用 setInterval 有一个多小时的限制,可以用 setInterval 嵌套解决。 我也会用 cron 来处理,好控制。

我想用setInterval 每隔一个小时检测一下当前系统时间的小时值是否等于17,如果等于的话就执行,这样没问题吧?还有那个setInterval 有一个多小时的限制是怎么个情况?

Z
zhs077#5·13 年前

The interval must be in the range of 1-2,147,483,647 inclusive. If the value is outside that range, it's changed to 1 millisecond. Broadly speaking, a timer cannot span more than 24.8 days. 24小时理论上来讲是可以实现的。

Z
zensh#6·13 年前

setInterval不要设置这么长的时间间隔啊,比如设置10分钟检测一次,如果当前时间是17点左右的时间段,就开始执行任务

Z
zensh#7·13 年前

实际上完全可以先做一个精度为10分钟的cron模块

D
duyinghua#9·13 年前
引用 zenshsetInterval不要设置这么长的时间间隔啊,比如设置10分钟检测一次,如果当前时间是17点左右的时间段,就开始执行任务

目前是这个思路 不过10min我用的是1h间隔,如果不是简单+1而是一些复杂的记库之类的,那就不好用cron了

X
xieren58#10·13 年前
引用 zenshsetInterval不要设置这么长的时间间隔啊,比如设置10分钟检测一次,如果当前时间是17点左右的时间段,就开始执行任务

@duyinghua 我目前在用的就是,时间间隔小一点,然后判断时间是自己想要执行的范围,就执行~~

H
hankwang#11·13 年前

正好最近也在用cron去定時跑我的nodeJS程式, 這篇我的Blog讓你參考 :)

我原本也是想在nodeJS判定時間, 但後來發現用crontab就可以很簡單做到我想要的事

[Linux] 使用 Crontab 定時執行程式

F
freemem#12·13 年前
引用 zhs077The interval must be in the range of 1 2,147,483,647 inclusive. If the value is outside that ran...

多谢,24.8天够了。我用的appfog云主机,貌似没法设置crontab,只能用setInterval.

F
freemem#13·13 年前

有用appfog云主机的吗?它可否调用系统的crontab功能?

参与回复
登录后即可参与回复。登录