问题:cron 例程在 Meteor 服务器启动后多次启动
Issue: cron routine launching several times after Meteor server start
我目前正在开发 Meteor 应用程序。使用 npm 包 node-schedule 启动了几个 cron 例程。我的问题是,在首次启动 meteor 服务器(使用命令行 '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.startup
回调中
Meteor.startup(() => {
schedule.scheduleJob('*/1 * * * *', // cron pattern for every minute
function () {
fetch("whatever/my/routine/route", {
headers: { 'Content-type': 'application/json' },
method: 'GET'
});
});
});
我目前正在开发 Meteor 应用程序。使用 npm 包 node-schedule 启动了几个 cron 例程。我的问题是,在首次启动 meteor 服务器(使用命令行 '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.startup
回调中
Meteor.startup(() => {
schedule.scheduleJob('*/1 * * * *', // cron pattern for every minute
function () {
fetch("whatever/my/routine/route", {
headers: { 'Content-type': 'application/json' },
method: 'GET'
});
});
});