0
我有一個函數可以隨機的時間間隔向數據庫中寫入數據。它使用隨機超時遞歸調用自身。如何在Node.js中在後臺運行函數
但它目前當然會干擾請求/響應週期,這就是爲什麼我希望它成爲後臺任務。
如何在Node.js的後臺運行function
?我遇到了npm模塊kue
,但不明白如何使用它來使該功能在後臺運行。
編輯:我創建了一個文件bgTask.js
有遷此功能:
var randomstring = require('random-string');
var Thing = require('./thing.model');
var autoCreate = function(){
console.log("THING CREATED AUTOMATICALLY")
var randomNumb=0;
clearTimeout(randomNumb);
randomNumb = (Math.random()* (10-5) + 5).toFixed(0);
console.log("random number", randomNumb)
var randomThing =randomstring({
length: randomNumb,
numeric: false,
letters: true,
special: false
});
console.log("ranfom thing", randomThing)
Thing.create({
name: randomThing,
readByUser: false
}, function(err, thing) {
console.log("THING IS", thing)
setTimeout(autoCreate, randomNumb * 1000);
});
}
setTimeout(autoCreate, 10*1000);
它看起來像上面。
在API的我的控制器文件,我有這行代碼:
var myBgTask = require('child_process').fork('./bgTask.js');
但我得到一個錯誤,指出:
Error: listen EADDRINUSE :: 5858
我該如何解決這個問題?
您看到什麼類型的干擾請求? –
你可以使用['child_process'](https://nodejs.org/api/child_process.html)。 'child_process.fork()'允許你異步執行.js文件。 – Shanoor
@DavinTryon:我在帖子上發生連接錯誤,並把請求放在客戶端/結束。 –