【发布时间】:2020-03-07 00:55:03
【问题描述】:
我目前正在开发 Meteor 应用程序。使用 npm 包 node-schedule 启动了几个 cron 例程。我的问题是在首次启动流星服务器后(使用命令行'meteor yarn start:dev'),例程一次执行多次,然后按预期每分钟执行一次。显然,这会导致一些与这些例程的异步性质相关的问题。
我的假设:由于初始构建大约需要 3 分钟,并且例程每分钟调度一次,我认为调度程序可能会在构建过程开始时以某种方式初始化,从而导致在服务器实际准备好时多次启动.
一些用于清除情况的示例代码:
const schedule = require('node-schedule');
const fetch = require('node-fetch');
schedule.scheduleJob('*/1 * * * *', // cron pattern for every minute
function () {
fetch("whatever/my/routine/route", {
headers: { 'Content-type': 'application/json' },
method: 'GET'
})
});
我已经对如何在例程代码中访问流星服务器状态进行了一些研究,以便仅在服务器完全运行时执行,但一无所获。
任何可以提供帮助的东西都是受欢迎的,甚至是一种解决方法。请记住,我的假设可能完全错误。
【问题讨论】:
-
你可以使用一个meteor cron 包来代替npm 包。我写了atmospherejs.com/chfritz/easycron,但还有其他人。
标签: javascript meteor cron node-fetch node-schedule