问题:cron例程在Meteor服务器启动后启动了几次

问题描述 投票:0回答:2

我目前正在开发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'
  })
});

我已经对如何访问例程代码中的流星服务器状态进行了一些研究,以便仅在服务器完全运行但未发现任何内容时才执行。

欢迎您提供任何有帮助的方法,甚至可以解决。请记住,我的假设可能是完全错误的。

javascript meteor cron node-fetch node-schedule
2个回答
0
投票

0
投票
Meteor.startup(() => { schedule.scheduleJob('*/1 * * * *', // cron pattern for every minute function () { fetch("whatever/my/routine/route", { headers: { 'Content-type': 'application/json' }, method: 'GET' }); }); });
© www.soinside.com 2019 - 2024. All rights reserved.