我知道使用一個setting.job
文件可以gracefully shutdown an Azure WebJob。這是我的文件:如何正常停止爲Nodejs寫的Azure WebJob
{
"schedule": "0 */10 * * * *",
"stopping_wait_time": 120
}
我已經寫了一個JavaScript的WebJob。 WebJob在Nodejs上運行。它按需配置,並由setting.job
每10分鐘觸發一次。由於某些原因,我的setting.job
文件不能正常關閉Web Job。它總是失敗。
也許我失去了一些東西還是不明白WebJob兩端完全如何關機,但我在run.js
一個討厭的調整結束:
setTimeout(function() {
process.exit();
}, 30000);
的一段代碼在的結束時執行腳本。我想知道在我使用的解決方案旁邊是否有更優雅的解決方案。
run.js
例如:
const http = require('http');
const request = require('request');
const fb = require('firebase');
request(process.env.SourceUrl, function (error, response, body) {
'use strict';
if (!error && response.statusCode == 200) {
// Process data from body
} else {
console.log(error);
}
});
// Nasty hack to end gracefully
setTimeout(function() {
process.exit();
}, 6000);
當你在本地運行你的工作時,它本身是否關閉,或者你需要ctrl + c來逃脫? –
是的,大多數時候我只是關閉cmd窗口。 – James
對不起,我不確定我的理解。你按ctrl + c /關閉窗口?如果是這種情況,那麼很可能您的WebJob中仍然存在偵聽器/回調。如果你發佈了一些代碼,我可以幫你找到這個。 (但不要分享任何你不想讓人看到的東西:)) –