Erlcron分析学习
介绍
Erlcron实现类似Linux下面的cron的计划任务。
源码下载地址:https://github.com/erlware/erlcron
原理
Erlcron进程监控树
|
ecrn_cron_sup |
ecrn_agent |
|
|
ecrn_sup |
ecrn_reg_server |
|
|
ecrn_control |
Erlcron利用gen_server的timeout机制实现定时;
添加一项定时任务,会在ecrn_cron_sup下面创建子进程ecrn_agent,并在ecrn_reg_server注册自己;
取消一项定时任务,则在ecrn_reg_server找到进程,然后stop该ecrn_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).
Erlcron分析学习的更多相关文章
- [erlang]一次erlcron崩溃引起的事故分析
事故背景 由于误操作在erlcron设置了一个超过3个月后的定时任务.然后第二天之后发现每天的daily reset没有被执行,一些定时任务也没有被执行.瞬间感觉整个人都不好了,怎么无端端就不执行了呢 ...
- jQuery源码逐行分析学习02(第一部分:jQuery的一些变量和函数)
第一次尝试使用Office Word,方便程度大大超过网页在线编辑,不过初次使用,一些内容不甚熟悉,望各位大神见谅~ 在上次的文章中,把整个jQuery的结构进行了梳理,得到了整个jQuery的简化结 ...
- Python数据分析学习目录
python数据分析学习目录 Anaconda的安装和更新 矩阵NumPy pandas数据表 matplotlib-2D绘图库学习目录
- activiti源码分析学习
activiti源码分析学习导语 目前项目中用activiti来做工作流的相关工作,最近遇到一些情况下,公司二次开发的流程图渲染出现了问题,会造成流程图出不来的情况.初步分析数据库中记录以及简单的代码 ...
- 分析学习MYSQL源代码需要哪些方面的知识呢?
分析学习MYSQL源代码需要哪些方面的知识呢? 哪些书籍或网站对这方面有帮助呢? 60d
- ranch分析学习(一)
Ranch 是一个tcp处理的程序框架.官方的解释 Ranch is a socket acceptor pool for TCP protocols. 主要目的是提供一个方便,易用,高效,稳定的t ...
- 【C++】插值函数代码分析学习
插值函数代码分析学习,用的CImage类load图像. // Imagejoint.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #inc ...
- V4L2框架分析学习二
转载于:http://www.techbulo.com/1198.html v4l2_device v4l2_device在v4l2框架中充当所有v4l2_subdev的父设备,管理着注册在其下的子设 ...
- V4L2框架分析学习一
转载于http://www.techbulo.com/1193.html 1.概述 Video4Linux2是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口.凡 ...
随机推荐
- CentOS7使用yum安装ceph rpm包
1. 安装centos7对扩展repo的支持yum install yum-plugin-priorities保证下面的选项是开启的[main]enabled = 1 2. 安装 release.ke ...
- 自定义 EditText 样式
极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...
- FTP工具-FileZilla安装使用教程
1.首先,百度搜索“FileZilla”,进入官网,下载地址:https://www.filezilla.cn/download/client ,根据自己电脑配置去下载 2.下载本地,双击运行安装程 ...
- HTML/CSS:导航栏水平和垂直
1.垂直导航栏 导航栏 = 链接列表导航栏基本上是一个链接列表,因此使用 <ul> 和 <li> 元素是非常合适的.如需构建垂直导航栏,我们只需要定义 <a> 元素 ...
- c#小灶——自动类型转换和强制类型转换
前面已经认识了不同的数据类型,你们有没有尝试过让不同的数据类型进行运算呢? ; double b = a; Console.WriteLine(b); 运行结果是:1 我们把一个整型的变量赋值给了一个 ...
- Python项目中的单元测试
引入 单元测试负责对最小的软件设计单元(模块)进行验证,unittest是Python自带的单元测试框架. 单元测试与功能测试都是日常开发中必不可少的部分,本文演示了Python中unittest单元 ...
- abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十四)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- WIN10家庭版桌面右键单击显示设置出现ms-settings:display或ms-settings:personalization-background解决办法[原创]
最近,笔者的笔记本卸载oracle数据库,注册表里面删除了不少相关信息,没想到担心的事情还是来了!桌面右键单击显示设置出现ms-settings:display或ms-settings:persona ...
- 使用.Net Core CLI命令dotnet new创建自定义模板
文章起源来自一篇博客:使用 .NET CORE 创建 项目模板,模板项目,Template - DeepThought - 博客园 之前使用Abp的时候就很认同Abp创建模板项目的方式.想不到.Net ...
- N*N矩阵的旋转 不开辟新空间
/* N*N矩阵的旋转 不开辟新空间 programmer:qpz time:2014-11-09 */ #include <iostream> using namespace std; ...