首页 > 解决方案 > 使用 node/bree/bthreads 的 adhoc EPIPE 异常

问题描述

使用 node.js,当 bree.js 是负责定期创建工作作业的主要进程时,我使用了一种模式。Bree.js 使用 bthreads.js,我强制 bthreads 产生一个工作进程(使用BTHREADS_BACKEND=child_process)。工作进程可能(取决于其范围)然后自己完成工作或(再次使用 bthreads)产生一个或多个工作人员)。

这种模式被用于许多解决方案中,在一周的时间里,我会发现大约 10-20 个“僵尸进程”。在同一时间段内产生的实际进程数将达到数百个。这些僵尸的出现是因为下面的例外。

我确定我有竞争条件(父母在孩子之前关闭)并且尝试了许多不同的方法来尝试隔离它。我查看了 bthreads 模块并尝试在退出之前向父级“发布”(即:发布 ("end") 或 ("done") ),但似乎没有任何帮助。bthreads 已经两年没有更新了,我正在使用节点 14。

任何有关如何进一步调试或将我的精力集中在哪里的指导表示赞赏。

周期性异常

标签: node.js

解决方案


推荐阅读