gpt4 book ai didi

multithreading - 如何重置多线程任务? (JX核心)

转载 作者:太空宇宙 更新时间:2023-11-03 23:41:40 24 4
gpt4 key购买 nike

我有一个 node.js 应用程序,已将其移至 JXcore 多线程中,但无法弄清楚如何重置任务。在当前的实现中,服务器创建一个子进程并逐个发送作业。

当一个作业花费超过X秒时,主进程会杀死子进程并跳过正在运行的任务并记录它。任何作业的时间不应超过 X 秒。

到目前为止,我已经轻松地将队列系统移至 JXcore 中,并且它按预期工作,但我还不知道如何终止正在运行的任务。

最佳答案

看起来终止正在运行的任务的能力是一个必要的功能,因为有人已经问过同样的问题,并且已经在这里得到了回答:Thread lifetime management .

即将发布的 JXcore 版本将包含 jxcore.tasks.killThread()。逻辑是这样的:一个任务会通知主线程,它刚刚启动,然后主线程可能会开始计算杀死线程的超时时间,例如:

// main thread receives the message from a task
jxcore.tasks.on("message", function(threadId, obj){
if(obj.started){
//kill the task after a second
setTimeout(function(){
jxcore.tasks.killThread(threadId);
console.log("thread killed", threadId);
},1000);
}
});

// adding a task
jxcore.tasks.addTask( function() {
// informing the main thread, that task is just started
process.sendToMain({started:true});

// looping forever
while(true){};
console.log("this line will never happen.");
});

关于multithreading - 如何重置多线程任务? (JX核心),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22616689/

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