问题标签 [node-schedule]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1332 浏览

node.js - 节点 Cron / 节点计划并不总是在特定日期工作

我需要在特定日期运行查询作业,在研究 nodejs 库后,更推荐使用 node-cron,因为它对一次性作业的处理比重复性作业更好。问题是,有时作业按应有的方式运行,有时它没有运行,我没有收到任何错误。通常,如果所选日期长于 2 小时,则 cron 作业不会执行,如果所选日期为 30 分钟或更短,则可以正常工作。

我尝试了 node-cron 和 node schedule 库,我添加了错误处理程序以在 cron 作业未执行时捕获错误,但在作业未执行时未引发错误。

路由.js:

catchErrorAsync.js:

错误.js:

为什么 cron 作业有时有效,有时无效?用于此用途的正确库是什么?

0 投票
1 回答
56 浏览

cron - 为什么sashido同时多次调用cron作业?

我正在使用 sashido AS 解析服务器。我想在 sashido 中实现每 1 分钟调用一次的 cron 作业。

我在云代码(sashido)中定义了jobs.js文件,其中包含以下代码。

当我将它部署到 sashido 时,它会在日志文件中给我这个日志。

在此处输入图像描述

它同时向我显示多个日志。请帮我摆脱这些东西。提前致谢..

0 投票
1 回答
167 浏览

node.js - 从 json 配置文件调度函数

我有一个 json 配置文件,其中包含要在我的 nodeJS 应用程序中安排的默认作业列表。目的是从这个文件中调度(使用节点调度)我的模块的一些功能来手动定义它的间隔。

问题是 json 文件将函数名称(job.name下面)存储为字符串,我需要将函数传递给schedule.scheduleJob.

我试过了this[job.name]module[job.name]但它是一样的。

提前致谢

0 投票
1 回答
885 浏览

javascript - 节点调度运行任务太多次

我已经为自己构建了一个随机的 qoute 生成器,它每天都会发送一封带有报价的电子邮件。为了构建它,我使用了 node-schedule 包。

我指定它每天 16:00 应该执行一个函数:

但事实证明,它会这样做很多次,而不仅仅是一次。

有什么问题?

这是完整的代码:

所以,对于结果,我希望这个scheduler()函数应该只运行一次。

谢谢你。

0 投票
0 回答
122 浏览

node.js - 在 scheduleJob 中使用 Nock 进行测试

我在 scheduleJob 节点中测试 http 请求时遇到问题。好吧,我已经按照这里的建议将 crontime 更改为每秒运行一次,以便于测试。问题是,我不认为我为测试 http 请求而创建的 Nock 工作正常。因为当我做 console.log('res : ', res); 它要么返回未定义,要么不打印任何内容,如下所示:在此处输入图像描述。有谁知道如何解决这个问题?

索引.js

});

单元测试:

})


已编辑

index.js

单元测试

*检查是否gitReq()调用-使用sinon.spy(但我不确定实现是否正确)

*使用它测试 http 请求nock仍然返回未定义的res.

*这是测试结果

0 投票
2 回答
631 浏览

node.js - 如何从特定日期开始以特定频率运行 cron 作业?

我尝试使用 npm 包“cron”和“node-schedule”来完成这项工作,但我做不到。假设我想在下午 6.30 开始 cron 作业,从下午 6 点开始,我希望它每 2 小时执行一次。首先是如果它不是一个确切的时间,我无法让它工作,这意味着如果它不是(1PM,2PM,8PM .....)所以我认为它会在下午 6 点而不是 6.30PM 我运行尝试了这种模式:“0 18-23/2 * * *”应该在 18 点到 23 点之间工作,转义两个小时 [18,20,22,00] 但是一旦过了午夜,它就会停止,直到再次到 18 小时。我希望它每 2 小时执行一次(这意味着它在凌晨 2 点执行,依此类推……) cron 作业可能吗?

0 投票
0 回答
42 浏览

node.js - Node.js - 返回嵌套函数值

我是 Node.js 的新手,只是学习使用 Promises 和异步函数的基础知识。目前,我正在努力使用 Promises 从嵌套函数中实现返回。尽管有类似的问题(我认为同样的问题),但我仍然没有得到它的工作。这就是我想要实现的目标。

使用函数jobScheduler ,我使用node-schedule模块创建了一个新作业,该模块使用特定的重复规则(变量规则)在两个日期(变量startend )之间从服务中检索数据。该服务以真/假的形式返回数据(正常工作)。现在我需要通过jobScheduler函数返回这个服务的值并做出承诺。作业调度程序工作正常,我只是在努力通过我的 jobScheduler 函数返回真/假值。

0 投票
2 回答
2563 浏览

node.js - 如何安排节点 js 脚本在 Windows 上自动运行?

这个脚本

用于在 Ubuntu 中调度作业,如何使用 node-schedule npm 包在 Windows 中设置相同的方式?

作为解决方法,在任务计划程序中安排了脚本:

我想知道如何在 node-schedule npm 包中做到这一点。

0 投票
0 回答
406 浏览

javascript - 如何发送带有特定数据的预定电子邮件,而不必在反应组件中呈现它?

所以几个月前我开始在这家公司工作,我被要求每隔一天发送预定的电子邮件,关于在特定时间范围内反复出现问题的机器。我之前的开发人员创建了一个脚本来执行此操作,但是他决定如何实现它存在一些问题。它的实现方式是,他决定使用 node-shceduler 为这些预定的电子邮件创建一个组件,并且该组件正在主组件渲染方法中呈现,对我来说这是一个很大的危险信号。问题是,每当渲染这个主组件时,计划的脚本也会运行,并且在主组件中调用 setState 的所有时间,脚本组件都会被渲染并阻塞系统。

我意识到这是非常低效的,我觉得可以做得更好。我的主要想法是将这个调度方法放在服务器端,但问题是我不确定如何将我的数据从数据库获取到服务器来执行此操作。

这是我的 Timedscripts.js 文件

我发现该计数用于阻止此模块创建与主组件渲染一样多的电子邮件,这在 imo 中再次看起来非常糟糕。'/send' 从服务器端发送一封电子邮件。

这是主要组件

如您所见,每次渲染主组件时,此脚本组件都会安装并一遍又一遍地运行它的方法。

我通过调用主组件中的套接字获得所需的信息,然后调用 db 过程,然后将此信息传递到 TimedScripts 组件。如果有人对我如何使该组件渲染一次有想法,或者如果有更好更有效的方法来做到这一点,我将不胜感激!谢谢。

0 投票
2 回答
281 浏览

node.js - 在 Node.js 中执行作业后返回 Promise

我正在为一些监控内容创建一个小型 Node.js 应用程序。必须使用此应用程序进行以下操作:

作业调度程序(使用节点调度模块)在一段时间内从 Web 服务中检索数据并将内容插入到数组中(用于进一步处理)。完成工作后,promise 应该解析完整的数组,以便在我的主程序中使用它。

到目前为止,这是我的编码。通过这种编码,承诺在完成工作之前得到解决,并且数组为空。你能给我任何提示如何解决这个问题吗?