Erlcron分析學習

介紹git

Erlcron實現相似Linux下面的cron的計劃任務。github

源碼下載地址:https://github.com/erlware/erlcronspa

 

原理code

Erlcron進程監控樹server

 

ecrn_cron_supblog

ecrn_agentthree

ecrn_sup進程

ecrn_reg_serverget

 

 

ecrn_control源碼

 

 

Erlcron利用gen_servertimeout機制實現定時;

添加一項定時任務,會在ecrn_cron_sup下面建立子進程ecrn_agent,並在ecrn_reg_server註冊本身;

取消一項定時任務,則在ecrn_reg_server找到進程,而後stopecrn_agent

 

使用

添加任務

{{once, 3600}, {io, fwrite, ["Hello, world!~n"]}}

{{once, {12, 23, 32}}, {io, fwrite, ["Hello, world!~n"]}}

{{daily, {3, 30, pm}}, fun() -> io:fwrite("It's three thirty~n") end}

{{weekly, thu, {2, am}}, {io, fwrite, ["It's 2 Thursday morning~n"]}}

取消任務

erlcron:cancel(JobRef).
相關文章
相關標籤/搜索