首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重置多线程任务?(JXcore)

如何重置多线程任务?(JXcore)
EN

Stack Overflow用户
提问于 2014-03-24 17:40:29
回答 1查看 254关注 0票数 1

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

当作业花费超过X秒时,主进程将终止子进程并跳过正在运行的任务并将其记录下来。任何一项工作都不应超过X秒。

到目前为止,我已经很容易地将队列系统迁移到JXcore中,它可以正常工作,但我还不知道如何才能终止正在运行的任务。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-25 09:18:37

看来,杀死正在运行的任务的能力是必要的,因为有人已经问了同样的问题,并且已经在这里得到了答案:线程寿命管理

即将发布的JXcore将有jxcore.tasks.killThread()。逻辑是这样的:任务将通知主线程它刚刚启动,然后主线程可能会开始计算终止线程的超时,例如:

代码语言:javascript
复制
// 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.");
}); 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22616689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档