*编辑:我在芹菜任务中发现了一个bug,导致了这个问题。所以这和那段JavaScript代码无关。建议结束此问题。
我在Flask web服务器上运行了这个Javascript函数,它可以检查芹菜任务的状态。如果任务完成,则console.log其结果,否则在2秒后重新检查。
如果芹菜任务在6分钟内完成,则运行良好。然而,当它达到6分钟时,这个函数就会停止运行。芹菜任务的状态再也没有更新过,即使我确定该任务仍然在后台运行,我也没有收到来自Javascript的任何结果。
是Flask的超时设置吗?任何真知灼见都将不胜感激。
function update_progress(status_url) {
// send GET request to status URL
$.getJSON(status_url, function(data) {
if (data['state'] != 'PROGRESS') {
if ('result' in data) {
console.log(data['result']);
}
else {
// something unexpected happened
console.log(data['state']);
}
}
else {
// rerun in 2 seconds
setTimeout(function() {
update_progress(status_url);
}, 2000);
}
});
}发布于 2017-01-28 03:10:51
您可以尝试使用setInterval,将其注册到一个变量。
const updateInterval = setInterval(function(){
update_progress(status_url);
},2000);在update_progress函数中,删除else部件并添加clearInterval(updateInterval)
function update_progress(status_url) {
// send GET request to status URL
$.getJSON(status_url, function(data) {
if (data['state'] == 'PROGRESS') {
return;
}
clearInterval(updateInterval);
if ('result' in data) {
console.log(data['result']);
}
else {
// something unexpected happened
console.log(data['state']);
}
});}
https://stackoverflow.com/questions/41900422
复制相似问题