javascript - node-cron 仅在间隔时不执行脚本 console.log
问题描述
在初始运行时,它会运行 app.js,但是会在间隔时跳过它。我在这里可能做错了什么?
var cron = require('node-cron');
cron.schedule('*/10 * * * * *', function(){
var shell = require('./app.js');
commandList = [
"node app.js"
]
console.log('Bot successfully executed');
});
日志:
ec2-user:~/environment $ node forever.js
Bot successfully executed
You have already retweeted this Tweet.
You have already retweeted this Tweet.
Bot successfully executed
Bot successfully executed
Bot successfully executed
Bot successfully executed
Bot successfully executed
Bot successfully executed
Bot successfully executed
Bot successfully executed
解决方案
我猜你app.js
会立即执行代码,所以它只通过要求它来执行(并且要求被缓存,所以它只执行一次)。
您应该从您的app.js
而不是返回函数并在每次运行时调用它。
// app.js
module.exports = () => {
// your original code here
};
// forever.js
var cron = require('node-cron');
var shell = require('./app.js');
cron.schedule('*/10 * * * * *', function(){
shell();
console.log('Bot successfully executed');
});
或者,也许您可以require
在运行之前清除缓存:
delete require.cache[require.resolve('./app.js')]
推荐阅读
- python - Numpy 性能差异取决于数值
- ms-access - 多个表单填充单个记录访问 2016
- ios - 使用单词而不是点的自定义页面控件 - Swift
- html - How to apply styles like hover, selected to this side nav menu
- r - 在 R 中使用 seq 函数时,错误“在 'by' 参数中签名错误”是什么意思?
- c# - Selenium C# ImplicitWait 不会等待元素加载
- elixir - 凤凰城通配符路线的路径助手(Elixir)
- c++ - 何时/为什么 libstdc++ 和 libc++ 符号不兼容?
- c# - Windows 服务 - 安装服务时出现 UnauthorizedAccessException 错误 (C#)
- dart - Dart:如何获取除类和类成员之外的任何内容的元数据?