Erlcron分析学习

介绍

Erlcron实现类似Linux下面的cron的计划任务。

源码下载地址:https://github.com/erlware/erlcron

 

原理

Erlcron进程监控树

 

ecrn_cron_sup

ecrn_agent

ecrn_sup

ecrn_reg_server

 

 

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).
posted @ 2017-03-08 19:58  云彩草原  阅读(374)  评论(0编辑  收藏  举报