Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Node.js 在节点JS中运行的任务的解纠缠日志_Node.js_Logging_Asynchronous - Fatal编程技术网

Node.js 在节点JS中运行的任务的解纠缠日志

Node.js 在节点JS中运行的任务的解纠缠日志,node.js,logging,asynchronous,Node.js,Logging,Asynchronous,保存新行将启动2个异步作业。我试图调试一个后台作业,因为它们运行在一些共享模型代码中。问题是,如果我添加日志来调试任何共享代码,它会突然变得混乱,看起来像: 15:36:42 worker.1 | Running SQL "select count() .." (job #1) 15:36:42 worker.1 | Running SQL "select * .." (job #2) 15:36:42 worker.1 | Got to part 2 of the code

保存新行将启动2个异步作业。我试图调试一个后台作业,因为它们运行在一些共享模型代码中。问题是,如果我添加日志来调试任何共享代码,它会突然变得混乱,看起来像:

15:36:42 worker.1 | Running SQL "select count() .."  (job #1)
15:36:42 worker.1 | Running SQL "select * .."        (job #2)
15:36:42 worker.1 | Got to part 2 of the code        (job #1)
15:36:42 worker.1 | Got to part 3 of the code        (job #1)
15:36:42 worker.1 | Got to part 2 of the code        (job #2)
15:36:42 worker.1 | Got to part 3 of the code        (job #2)
15:36:42 worker.1 | Got to part 4 of the code        (job #1)
15:36:42 worker.1 | Job failed                       (job #2)
15:36:42 worker.1 | Job complete                     (job #1)
除了“工作2”的标签在现实中是不可能的。我只是添加了这些来说明混乱

我想过滤掉由于
job#2


这两个作业共享相同的
进程。pid
-“它们是否应该是单独的进程?”

是否可以隔离作业2并独立于作业1运行它(或者只提供系统所需的任何输入,以创建产生要调试的结果的作业。)

如果没有,您能否标记您的
异步作业
。如果您可以给每个作业一个唯一的id,该id在链的早期初始化并在整个链中传递,那么您可以基于该id对日志进行grep

在现实中,给代码添加标签肯定是可能的,它可能只需要对代码进行重新构造或重构


另一种选择是拥有一个工作人员池,您可以将作业卸载到该工作人员池中,这会将每个作业隔离给一个工作人员,但可能不是必需的,并且肯定会增加程序的复杂性。

隔离作业是可能的。我想在这个例子中,我想看看并行运行是否有副作用。我真的很喜欢一开始就为这份工作编一个UUID,让它成为州政府的一部分,这是通过承诺传递的。谢谢