WebAPI 定时执行事项

因最近在写一个后端,需要定时查询数据库中的事项,是否有按时完成,所以写了一个定时发送函数。

1. 代码如下,

      a. 调用 SetTimeOut 函数时要传入一个参数,单位 毫秒。

      b. 可以在 10 点和12 点,准时执行对应的事项。

      c. 你可以根据自己的需求修改。

 public static void SetTimeOut(double interval)
        {
            System.Timers.Timer timer = new System.Timers.Timer(interval);//实例化Timer类,设置间隔时间;
            timer.Elapsed += new System.Timers.ElapsedEventHandler(delegate (object sender, System.Timers.ElapsedEventArgs e)
            {
                timer.Enabled = true;

                string hour = DateTime.Now.Hour.ToString();
                
                if(hour=="10"){// 每天10点准时发送超过 2 天未结案的CAR 清单
                    if(sentX==0){
                        DailyReport();//这里是要执行的功能
                        sentX=9;
                    }
                }else{
                    sentX=0;
                }

                if(hour=="12"){//每天12点 发送超CAR 提醒
                    if(Alertx==0){
                        CARAlert();// 分级提醒
                        Alertx=9;
                    }
                }else{
                    Alertx=0;
                }

            });//到达时间的时候执行事件;
            timer.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
            timer.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
        }

2. 上述代码中 sentX  与 Alertx 需要在主类下提前声明静态公用变量。

    public class ValuesController : ControllerBase
    {
        public static int sentX=0; //10点时发过了邮件就是0,否则就是1. 不是1 点变成 0;
        public static int Alertx=0;//每天12 点,邮件提醒超期未处理的CAR 

3. 需要在启动 WebAPI后做一次调用,就可以实现按时执行对应的事项。

        [HttpGet]
        public string Get(string title,string content)
        {

            SetTimeOut(5000); //WebAPI 开启计时功能;

4. 以上,看到此文章如有不清楚的内容,欢迎留言。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值