我有这种奇怪的情况,即我的cron作业成功地执行了一个返回承诺的函数,但是,当它试图在模型上执行.find()
时,它实际上从未执行。我在应用程序中其他地方使用了相同的功能,并且通过API调用来调用,并且返回没有问题。我缺少什么吗?
这是我的cron脚本:
var CronJob = require('node-cron');
var TradeService = require('../services/TradeService');
// Setup the cron job to fire every second
CronJob.schedule('* * * * * *', function() {
console.log('You will see this message every second');
TradeService.executePendingTrades();
}, null, true, 'America/Los_Angeles');
这是被称为:
的相关功能exports.executePendingTrades = () => {
// Get all pending trades
exports.getPendingTrades().then(results => {
console.log('results', results); // This never fires
})
}
exports.getPendingTrades = () => {
return new Promise((resolve, reject) => {
Trades.find({})
.where('is_canceled').equals('false')
.where('is_completed').equals('false')
.sort('-created_at')
.exec( (err, payload) => {
if (err) {
return reject(err); // This never fires
}
return resolve(payload); // This never fires
})
});
}
这是黑暗中的镜头,但是请确保您正在启动cron作业中的数据库连接。否则您将无法执行任何查询。