erlang 如何创建一个按时间间隔轮询的进程?

ippsafx7  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(92)

我正在尝试创建一个每隔几秒/毫秒检查一个目录的进程,并处理其中的文件,下面的内容在Erlang中是否可以接受?

init(Dir) ->    loop(Dir).

loop(Dir) ->
    check_dir(Dir),
    spawn(fun() -> do_something(File) end),
    timer:sleep(5).
    loop(Dir).
7qhs6swi

7qhs6swi1#

你可以用很多方法来实现这一点。一个好的第一个尝试是使用timer:apply_interval/4。你设置一个间隔,函数将在每个间隔 * 应用 *(又名调用)你的函数。

apply_interval(10, cool_module_name, check_dir_and_notify, [File]).

上面的函数调用将每10 ms调用一次check_dir_and_notify。除非取消,否则它将永远继续。

相关问题