我们每小时Exception in setInterval callback: undefined
隔几天运行一段时间。重新启动可以解决几天,直到再次破裂。可能是什么原因造成的?
(没有其他记录/抛出,也没有堆栈跟踪)
Meteor.setInterval(
startJob(),
1000 * 60 * 60
);
流星:1.8.0.2
答案 0 :(得分:0)
最可能导致崩溃的原因是您反复呼叫setInterval
。短期内没关系,但是最终会运行许多间隔计时器,最终由于内存和处理负载而将成为一个问题。
我更喜欢使用npm软件包node-cron
,我在启动方法中设置计时器,如下所示:
//
// These are cron-style time specifiers
//
// ┌───────────── minute (0 - 59)
// │ ┌───────────── hour (0 - 23)
// │ │ ┌───────────── day of month (1 - 31)
// │ │ │ ┌───────────── month (1 - 12)
// │ │ │ │ ┌───────────── day of week (0 - 6) (Sunday to Saturday)
// │ │ │ │ │ 7 is also Sunday on some systems)
// │ │ │ │ │
// │ │ │ │ │
// * * * * *
const TICKER_INTERVAL = '1,16,31,46 * * * *' // This runs 4 times an hour
// const TICKER_INTERVAL = '* * * * *' // This runs every minute (use when debugging)
Meteor.startup(() => {
cron.schedule(TICKER_INTERVAL, Meteor.bindEnvironment(signoutTicker))
})
这当然仅适用于服务器(您知道吗?)
我发现这对我来说非常可靠。