Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 如何重置多线程任务?(JXcore)_Multithreading_Node.js_Jxcore - Fatal编程技术网

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

Multithreading 如何重置多线程任务?(JXcore),multithreading,node.js,jxcore,Multithreading,Node.js,Jxcore,我有一个node.js应用程序,我已经将它迁移到JXcore多线程中,但却不知道如何重置任务。在当前实现中,服务器创建一个子进程并逐个发送作业 当一个作业花费的时间超过X秒时,主进程将终止子进程,跳过正在运行的任务并记录它。任何作业都不应超过X秒 到目前为止,我已经很容易地将队列系统移动到JXcore中,它可以按预期工作,但我还不知道如何终止正在运行的任务。看来终止正在运行的任务的功能是一项必需的功能,因为有人已经提出了相同的问题,并且在这里得到了回答: 即将发布的JXcore版本将包含JXco

我有一个node.js应用程序,我已经将它迁移到JXcore多线程中,但却不知道如何重置任务。在当前实现中,服务器创建一个子进程并逐个发送作业

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


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

看来终止正在运行的任务的功能是一项必需的功能,因为有人已经提出了相同的问题,并且在这里得到了回答:

即将发布的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.");
});