Loops 如何创建一个间隔轮询的进程?

Loops 如何创建一个间隔轮询的进程?,loops,recursion,erlang,repeat,Loops,Recursion,Erlang,Repeat,我正在尝试创建一个进程,每隔几秒/毫秒检查一个目录并处理其中的文件,下面的代码在Erlang中可以接受吗 init(Dir) -> loop(Dir). loop(Dir) -> check_dir(Dir), spawn(fun() -> do_something(File) end), timer:sleep(5). loop(Dir). 你可以用很多方法来做到这一点。一个好的第一个尝试是使用。您设置了一个间隔,函数将在每个间隔应用

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

init(Dir) ->    loop(Dir).

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

你可以用很多方法来做到这一点。一个好的第一个尝试是使用。您设置了一个间隔,函数将在每个间隔应用(也称为调用)您的函数

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

上面的函数调用将每隔10毫秒调用一次check\u dir\u和notify。除非您取消它,否则它将永远持续。

您可以通过多种方式执行此操作。一个好的第一个尝试是使用。您设置了一个间隔,函数将在每个间隔应用(也称为调用)您的函数

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

上面的函数调用将每隔10毫秒调用一次
check\u dir\u和\u notify
。除非您取消它,否则它将永远持续。

更为惯用+1更加地道+1