问题标签 [node-cron]

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 投票
1 回答
45 浏览

javascript - 为什么我的小时参数在 node-cron 中不起作用

我试图在每个星期一的 8:30 使用 node-cron 运行 cron 作业,所以我使用从未运行的“30 8 * * Mon”(我也使用了“30 08 * * Mon”以确保)。经过一些故障排除后,我发现“30 * * * Mon”确实有效,并且在每小时的第 30 分钟运行。谁能帮我解决这个问题,好吗?

0 投票
1 回答
195 浏览

node.js - 我是否需要让我的脚本运行以让 node-cron 执行计划任务?

我正在构建一个网络爬虫,我是新手。它的作用是抓取用户提供的 URL 的亚马逊价格,然后每当价格低于用户设定的价格时发送电子邮件。我正在使用 SendGrid 发送电子邮件。

但是,我有一个问题。我想将脚本设置为每隔一小时左右自动运行一次,并在发现价格较低时发送电子邮件。在网上研究后,我发现 node-cron 可以帮助我做到这一点,而且确实做到了。但是,它仅在我的脚本在后台运行时才有效。

所以我的主要问题是,要运行脚本并发送电子邮件,我的脚本是否需要一直运行?如果不是我能做什么?

这是我的 cron.js 文件。我还有一个 AmazonTracker.js,其中包含用于跟踪价格和发送电子邮件的代码。

此外,在尝试运行某些链接的代码时出现此错误。我的脚本适用于某些链接,并为其他一些链接抛出此错误。如果有人有任何建议。

0 投票
0 回答
100 浏览

node.js - TSC 将 node-cron 模块导出为 ["default"] 给 schedule() 未定义

不确定它是 node-cron 中的问题还是 tsc 翻译代码的方式中的问题。

问题是,当您尝试使用 node-cron 导出 ts 文件时,TSC 会转换:

进入这个:

尝试执行代码时抛出下一个错误:

/home/xxx/cronjobs/index.js:7 node_cron_1["default"].schedule('* * * * *', function () { ^ TypeError: Cannot read property 'schedule' of undefined at Object. (/home /xxx/cronjobs/index.js:7:24)

如果你删除 ["default"],它的工作就完美了。任何想法为什么会发生这种情况?

PD: ts-node 执行它没有问题。

0 投票
2 回答
1348 浏览

javascript - 如何在每个新月安排 node-cron 作业?

我正在使用 node-cron 包来安排 node-cron 作业。我想安排一个 node-cron 作业,它将在每个新月运行。例如:我的 node-cron 作业应该在2020 年 9 月 1 日运行,之后它应该在2020 年 10 月 1 日运行,依此类推..!请帮我解决上述问题。提前致谢。

0 投票
0 回答
157 浏览

node.js - 根据条件停止和开始执行 cron-job-manager (node-cron)

所以,我发现了一个关于这个的老问题(这里:How to stop a node cron job),但它对我不起作用(而且我不知道原因)。我正在使用 cron-job-manager (因为我计划同时使用多个预定作业)但据我所知它应该建立在 node-cron 上(但我是新手,所以.. .)

所以,我再次问:在某些条件下如何处理启动和停止 cron 作业?我实际上是为一个不和谐的机器人做这个:基本上,用户输入一个启动命令和一个停止命令。

第一次尝试是这样的:

当用户发出“go”命令时,这会成功启动作业,但是当它发出“stop”命令时,计划的作业不会停止。

第二次尝试是:

其中 job() 是预先定义的包含实际工作的函数,而 DoTheThing() 是根据用户在输入中所说的内容给出真假的东西。这将执行一次计划的作业,然后停止。不知何故,我怀疑这里的问题与我在外部定义函数的事实有关,而在大多数示例中,我看到函数总是写在 cron() 中。所以,我没有想法:提前感谢您的帮助!

0 投票
1 回答
25 浏览

javascript - JavaScript Bind (this) 不访问类

如果不对类本身进行一些修改,我无法访问类的方法。

请参阅以下演示代码:

在这个简单的示例中,我想在回调中访问 this.otherMethod()。显而易见的答案是更改callback()callback.bind(this)(),但是在这种情况下, hiddenClass 将是一个库。

我怎么能调用这个其他方法?

作为参考,我正在尝试使用 node-cron 创建 cron 作业。如果数据库检查返回 true,我想销毁这些作业,检查作业的每个周期(在回调中)。作业有一个内部方法.destroy()。我知道我可以将 cron 作业保存在一个变量中,然后调用variable.destroy(),但是有没有办法在回调中执行它(因为这些作业是在 for 循环中创建的,我不想确定要从中销毁哪个作业在回调中)

);

0 投票
0 回答
135 浏览

node.js - 带有时区和节能灯的nodejs时间表

我正在尝试使用node-sched在nodejs上安排一些工作(我也尝试过支持时区的node-cron-tz),在我当前的开发机器上它可以正常工作并且工作正常......在客户测试/产品环境中它2小时后执行。

我需要在数据库上执行这项工作,这通常是0 8 * * *

我在最新测试中使用的代码是

在这种情况下,即使在我的机器上它也无法正常工作,因为它不考虑节省光线......

我该如何处理?

0 投票
1 回答
4863 浏览

node.js - node-cron 时区仅在时区与机器时区相同时工作

编辑: - 这已在“node-cron”版本>“3.0”中解决

我有以下代码。"node-cron": "^2.0.3"

根据我的理解,无论我的机器时区如何,这应该在美国/纽约时间上午 12:46 触发。但是在我将时区与主机时间匹配之前它不起作用,例如,如果我的机器时区是欧洲/伦敦并且我使用timezone: "Europe/London"cron 将在准确的时间工作。

我想为特定时区安排 cron。由于我处理的时区很少,所以每半小时运行一次 cron 并进行检查,看起来很有效。

0 投票
2 回答
572 浏览

javascript - 有没有办法在 cron 中立即启动作业,然后在执行完成后停止它?

我刚开始使用 cron,但我找不到安排一次性工作的方法。我所拥有的对我有用,但我想知道是否有更好的方法来实现它。

下面的代码创建一个作业并在控制台中打印出它的创建。我每 1 秒设置一次计时器,但就在下面我用 1.5 秒睡眠来停止工作。

0 投票
0 回答
9 浏览

node.js - 节点 cron 只执行指定日期,执行成功后完全停止

我有这个代码:

此代码console.log('will execute')在 2020 年 9 月 10 日 17:00:00 运行,我运行成功。但我认为执行成功后过程不会停止。

执行成功后,有人帮我完全停止进程吗?

谢谢!