【发布时间】:2020-10-01 01:50:22
【问题描述】:
我将 GenServer 作为后台作业运行,每个 interval 由 Process.send_after(self(), :work, @interval) 重新安排。
此作业由主管在应用程序启动时启动。
它工作得很好,但现在我想测试我的 GenServer 模块是否真的在每个interval 产生新进程。
如何测试它?
编辑
我发现:sys.get_status(pid) 可用于获取有关进程的一些数据,但我真的很想使用receive do ... end 之类的东西
编辑 2
handle_info/2函数:
@impl true
def handle_info(:work, state) do
do_smt()
schedule_worker()
{:noreply, state}
end
schedule_worker/0函数:
defp schedule_worker do
Process.send_after(self(), :work, @interval)
end
【问题讨论】: