3

我有一个持续运行的守护进程,它是我使用 runit 包创建的。我希望守护进程监听一个表并根据表的列执行任务,该列说明它需要执行什么任务。

EG: table 'A' has column job_type.

我正在考虑在每次执行新任务时从该守护进程中派生子进程(基于守护进程侦听的表 A 中插入的新行)。

多处理模块说我不能或不应该从守护进程派生子进程,就好像它死了一样,子进程是孤立的。

什么是实现守护进程监听表的好方法,基于列值,分叉子进程(彼此独立),子进程执行任务并返回守护进程并死亡。

如果子进程正在访问共享数据并对其进行修改,我需要使用一些锁定机制。

4

1 回答 1

0

我假设你拥有的守护进程也是从一个名为多进程的 python 脚本产生的,其中 daemon=true。在这种情况下,守护进程正在运行意味着您的创建者进程仍在运行,因此您可以通过管道向它发送一条消息来为您生成一个新进程。如果您的守护进程需要与之通信,请使用套接字或您选择的任何 ipc 方法。

于 2017-02-14T06:10:44.777 回答