RJob

netcore 3.1 定时任务库


Keywords
Install
Install-Package RJob -Version 1.5.0

Documentation

RJob

说明

Rjob是.net core 3.1平台下的定时任务管理工具,可以在.net core 控制台运行,也可以在asp.net core上运行.

在asp.net core上运行的时候如果使用iis承载,可能会因为iis进程回收导致定时任务错误运行时间

使用方式

class Program
    {
        static void Main(string[] args)
        {
            RJob.Rjob jobs = new RJob.Rjob(new System.Collections.Generic.List<RJob.RJobOptions>() {
                new RJob.RJobOptions(){
                      canReeentry=false,//是否可重入,默认不可重入,在run回调没有完成时候不会重新进入
                      Run=()=>{//任务,这里是任务的具体逻辑
                          System.Console.WriteLine("5"+DateTime.Now.ToString());
                          System.Threading.Thread.Sleep(5000);
                      },
                      GetRunKey=()=>{//此回调函数每隔500毫秒调用一次,如果返回的字符串与上次的值不同,表示任务需要运行。
                          return DateTime.Now.ToString("YYYYMMDDHHmmss");//此出表示每秒执行一次
                      },
                },

                new RJob.RJobOptions(){
                     GetRunKey=()=>{ 
                        //每天1点运行
                        
                        if(DateTime.Now.Hour!=1) return null;//返回null不运行
                        return DateTime.Now.ToString("dd");
                     },
                     Run=()=>{ 
                        
                     }
                }
            },
            (e) =>
            {//job在运行中出错时会调用此函数,这里一般将job错误写入到数据
                System.Console.WriteLine(e.ToString());
            });

            jobs.Start();//启动job,

            Console.WriteLine("Hello World!");
        }
    }