遇到了同样的问题“如何安排函数每天使用 NodeJS 和生成器运行?” 在星期五和周末之后,我想出了一个解决方案。也许它也可以解决您的问题。
第一步是创建一个shell文件。我使用的是 Windows 10,因此如果使用 Mac,您可能需要对其进行调整。
#!/bin/bash
echo " # Starting Scraper ..."
pkill -f "node fileWithYieldToBeScheduled.js"
sleep 1
node fileWithYieldToBeScheduled.js -D
status=$?
if [ $status -ne 0 ]; then
echo "Failed to start node: $status"
exit $status
else
echo "Success"
fi
说明:将此命名为“myFancyFileToScheduleYields.sh”并将其放在您的根目录中。接下来创建一个包含以下内容的“scheduleYields.js”。
const childProcess = require('child_process');
var cron = require('node-cron');
/**
* Your task to be scheduled.
*/
const startFileWithYields= function () {
childProcess.exec(__dirname + "/myFancyFileToScheduleYields.sh", function (err, stdout, stderr) {
if (err) {
return console.log(stderr);
}
console.log(stdout);
});
}
cron.schedule('*/5 * * * *', function () {
startFileWithYields();
});
最后执行“node scheduleYields.js”并观察魔术是如何发生的。
这将根据文档每 5 分钟运行一次任务。现在去调整它以适应您的用例,如果它有效,请提供反馈。
我什至用 Docker 对此进行了测试,并且效果也很好:)