我目前正在开发 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'
})
});
我已经对如何在例程代码中访问流星服务器状态进行了一些研究,以便仅在服务器完全运行时执行,但一无所获。
任何可以提供帮助的东西都是受欢迎的,甚至是一种解决方法。请记住,我的假设可能完全错误。