При первом запуске он будет запускать приложение 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
и вызвать это при каждом запуске.
// 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')]
return
изapp.js
без частиmodule.exports
?