容易的计划任务实现。
简单的计划任务实现。。。
之前不知道什么是计划任务,但是弄过定时执行。后来听别人一阵解释大致理解。原来就是定时执行的高大上说法。
在服务端,有时候确实很需要定时做一些事情,比如晚上十二点人少的时候清理一下log,数据的重置等等。以前就是简单的写一个控制台,定时执行(或者加入系统服务),当然这是粗糙的做法。然后发现C#自己的实现框架不多,也有移植java的框架。
发现自己也用不到那么高大上的。然后就自己写了一个简单的。
public static void Main (string[] args) { TCore core = new TCore(); TTask task_1 = new TTask(); task_1.DoTask += Start_1; task_1.TTime = "* * * * * n%10"; task_1.TName = "任务_1"; task_1.isLongTask = true; task_1.isRun = true; TTask task_2 = new TTask(); task_2.DoTask += Start_2; task_2.TTime = "* * * * * n%15"; task_2.TName = "任务_2"; task_2.isRun = true; TTask task_3 = new TTask(); task_3.DoTask += Start_3; task_3.TTime = "* * * * * n%20"; task_3.TName = "任务_3"; task_3.isRun = true; core.JoinTask(task_1); core.JoinTask(task_2); core.JoinTask(task_3); core.Run(); }
我是根据每个的时间公式判断的,感觉很不错。
时间规则如下:
年 月 日 时 分 秒
中间以空格分割,可以用n代表当前的时间数,然后做公式运行,最后结果为0就代表符合条件,单个*代表所有匹配。
然后区分短任务和长任务,短任务用Task类承载运行,长任务用Thread承载运行。
可以改成配置的方式,然后把任务放在dll里面,更新就更新dll。
代码下载地址:http://files.cnblogs.com/files/RainbowInTheSky/Twork.zip
windows运行:
ubuntu14.04运行:
- 1楼_晚安
- 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武 1神威武