0
用於使用ROBOCOPY複製操作的作業隊列Async.js隊列工人用下面的代碼建立:沒有完成
interface copyProcessReturn {
jobId: number,
code: number,
description: string,
params: string[],
source: string,
target: string,
jobsLeft: number
}
export default class CopyHandler {
private aQueue: AsyncQueue<copyProcess>;
constructor() {
let that = this;
this.aQueue = async.queue(function (cp: copyProcess) {
that.performCopy(cp);
that.copy_complete();
}, 1);
}
private copy_complete() {
// NOP
}
public addCopyProcess(cp: copyProcess): void {
this.aQueue.push(cp);
}
的目的是在一個時間,以使一個複製處理的執行,同時保持在向隊列添加額外的複製過程方面的併發性。
這適用於第一份工作,其他工作正確排隊。但是,即使在作業完成後正確調用copy_complete()回調,其工作人員也不會被釋放,並且隊列中的其他作業仍未處理。
我會非常感謝提示。
async.queue中的函數有2個參數,其次是您需要在調用that.copy_complete()之後調用的回調。讓異步庫知道它已完成,並且可以在隊列中運行下一個fn – Molda
謝謝,async.worker現在按預期完成。如果您將評論發佈爲答案,我會將其標記爲正確。 –
酷,我會做我在手機上,所以它更容易發表評論。謝謝 – Molda