关于.NET后台定时服务框架的简单介绍


本文摘自PHP中文网,作者黄舟,侵删。

后台服务只要是有一定经验的开发人员都接触过,其中离不开服务创建,调度逻辑处理,业务逻辑编写等环节。往往我们在新建一个后台服务项目的时候都会去拷贝以前的代码,再写一些线程等方式去完成,然后又去处理服务的安装问题。大部分时间都是浪费在这些重复的工作上。
  这里提供的是一个简单的后台服务处理框架,简单的后台服务处理框支持(按指定间隔时间执行;每天指定时间执行每天一次;指定时间执行一次;每天指定开始和结束时间并且按照指定间隔时间执行),开发新的定时服务任务时,只需要实现抽象类的方法、添加任务配置以及运行安装脚本即可完成一个服务的开发。

  框架代码路径:框架代码


框架支持配置执行类型来控制任务的执行逻辑
按指定间隔时间执行
每天指定时间执行 每天一次
指定时间执行一次
每天指定开始和结束时间并且按照指定间隔时间执行

  

  以下是一个定时执行存储过程的任务。

  继承基类并编写业务逻辑代码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

using DataAccessHelper.SQLHelper;using Services.Common;using System;namespace Services.Tasks

{    public class CallProcTask : ServiceBase

    {        protected override void Exec()

        {            try

            {                if (_isStart)

                {                    if (!string.IsNullOrWhiteSpace(Config.Param))

                    {

                        LogFactory.GetLogger().Info(string.Format("开始执行存储过程 {0}", Config.Param));

                        SQLHelperFactory.Instance.ExecuteNonQuery(Config.Param, null);

                        LogFactory.GetLogger().Info(string.Format("执行存储过程 {0} 完成", Config.Param));

                    }

                }

            }            catch (Exception ex)

            {

                LogFactory.GetLogger().Error(string.Format("执行存储过程 {0} 异常:{1}", Config.Param, ex));

            }

        }

    }

}

  配置服务名称

  

  配置每次执行间隔60秒


1

2

3

4

5

6

7

8

9

[

  { //循环执行任务 每次执行间隔60秒

    "ServiceName": "CallProcTask-proc_test任务",//服务名称 非空

    "Assembly": "Services.exe",//程序集 非空

    "Methods": "Services.Tasks.CallProcTask",//执行类名  对应业务的类名 非空

    "S_Interval": 60,//间隔时间 单位秒

    "ExecType": 0,//执行类型 ( 0:按指定间隔时间执行 1:每天指定时间执行 每天一次 2:指定时间执行一次 3.每天指定开始和结束时间并且按照指定间隔时间执行) 可空默认0

    "Param": "proc_test"//自定义参数 在本案例中为SQL参数 可空  }

]

  编写完成后,编译,运行:Install.bat 即可在服务管理器中看到对应的服务。

  框架代码路径:框架代码

以上就是关于.NET后台定时服务框架的简单介绍的详细内容!

相关阅读 >>

详细介绍一个.net开源权限管理系统

c# 中guid生成格式有哪些方法

javascript client 如何获取 telerik radgrid的值

c#如何计算传入的时间距离今天的时间差的实例分享

总结.net mvc实现长轮询实例

c#多线程之semaphore的使用详解

分享.net mvc中使用forms验证实例代码

c#实现与现有.net事件桥接的简单代码

c# md5hash的用法及实例

.net中core如何利用redis发布订阅的实例分析

更多相关阅读请进入《.net》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...