我有一堆由 gproc 注册的进程,我想随时计算这些进程。当然,如果每个过程都运行良好,那将不是问题。每次启动或停止进程时,我都可以使用计数器递增和递减它们。
但问题是,流程并不总是表现良好。有时他们只是因为一些不明显的原因而死。设计上没问题,但我仍然想知道仍在运行的进程的确切数量。
有没有一种很好的方法来计算刚刚处于活动状态的进程?
我有一堆由 gproc 注册的进程,我想随时计算这些进程。当然,如果每个过程都运行良好,那将不是问题。每次启动或停止进程时,我都可以使用计数器递增和递减它们。
但问题是,流程并不总是表现良好。有时他们只是因为一些不明显的原因而死。设计上没问题,但我仍然想知道仍在运行的进程的确切数量。
有没有一种很好的方法来计算刚刚处于活动状态的进程?
如果您在 gproc 中注册的进程受到监督,您可以count_children
从supervisor使用。例如,您可以在 a 中使用 gproc 注册一个新进程init
并gen_server
取消注册它的terminate
. 您将同时获得 gproc 和监督的好处。
如果您不使用监督,您可以使用 gproc 计数器(或 aggregate_counter?,请参阅 gproc api)。