gpt4 book ai didi

javascript - request.get 不在 node-cron 的回调中工作

转载 作者:太空宇宙 更新时间:2023-11-04 02:11:51 26 4
gpt4 key购买 nike

您好,我正在编写一个脚本,每秒向特定网址发出请求,但是一旦我在 node-cron 回调中编写代码,我就会得到 TypeError request.get is not a function。这是我的代码

    var request = require('request');
var generalConfig = require('./config.js')

var cron = require('node-cron');
var async = require('async');

var failures = {
webEndManager: 0,
userManager: 0
}
cron.schedule('* * * * * *', function () {

async.parallel({
webEndManager: function (callback) {
request.get({
url: generalConfig.webEndManager
},
function (error, response, body) {
if (response) {
failures.webEndManager = 0;
callback(null, 'success');
}
else {
failures.webEndManager = failures.webEndManager + 1;
if (failures.webEndManager == 1)
callback(null, 'fail');
else
callback(null, 'success');
}
});
console.log("one 3000");
},
userManager: function (callback) {
request.get({
url: generalConfig.userManager
},
function (error, response, body) {
if (response) {
failures.webEndManager = 0;
callback(null, 'success');
}
else {
failures.webEndManager = failures.webEndManager + 1;
if (failures.webEndManager == 1)
callback(null, 'fail');
else
callback(null, 'success');
}
});
console.log("one 5001");
},
}, function (err, results) {
// results is now equals to: {one: 'abc\n', two: 'xyz\n'}
console.log(results);
});
console.log('running a task every minute');

});

当异步代码不在 cron 回调内时,它工作正常。

最佳答案

cron 包无法引用在其外部声明的全局对象,因为它是作为独立运行的。这就是为什么您需要在 cron 中声明请求。

所以移动这一行:

var request = require('request');

进入cron.schedule,你就可以访问它了。

关于javascript - request.get 不在 node-cron 的回调中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41738401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com