• 简单的计划任务实现。。。


    之前不知道什么是计划任务,但是弄过定时执行。后来听别人一阵解释大致理解。原来就是定时执行的高大上说法。

    在服务端,有时候确实很需要定时做一些事情,比如晚上十二点人少的时候清理一下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运行:

  • 相关阅读:
    Jni如何传递并且修改两个基础参数
    【转】对于JNI方法名,数据类型和方法签名的一些认识
    Android应用程序开机开机启动
    Android程序中Acticity间传递数据
    2014-7-6 学期总结
    程序员的美:极致与疯狂
    《重构:改善既有代码的设计》——关于代码注释的唠叨
    2014-5-5 近期小结和计划
    Android:RelativeLayout 内容居中
    图像处理:图像灰度化
  • 原文地址:https://www.cnblogs.com/RainbowInTheSky/p/5072629.html
Copyright © 2020-2023  润新知