Qrartz.net 在core上的学习记录 2、使用Corn表达式+给job传参数

1、使用corn表达式

            ITrigger trigger2 = TriggerBuilder.Create()
                                       .WithIdentity("mytrigger", "group1")
                                       .StartNow()
                                       .WithCronSchedule("/5 * * ? * *")    //时间表达式,5秒一次     
                                       .Build();

2、传参数

            IJobDetail job2 = JobBuilder.Create<DumbJob>()
                              .WithIdentity("myJob", "group1")
                              .UsingJobData("jobSays", "Hello World!")
                              .Build();

3、接收参数

        async Task IJob.Execute(IJobExecutionContext context)
        {
            JobDataMap dataMap = context.JobDetail.JobDataMap;
            string content = dataMap.GetString("jobSays");
            await Console.Out.WriteLineAsync("作业执行,jobSays:" + content);
        }

完整代码:

复制代码
public class DumbJob : IJob
    {
        /// <summary>
        ///  context 可以获取当前Job的各种状态。
        /// </summary>
        /// <param name="context"></param>
        async Task IJob.Execute(IJobExecutionContext context)
        {

            JobDataMap dataMap = context.JobDetail.JobDataMap;

            string content = dataMap.GetString("jobSays");

            await Console.Out.WriteLineAsync("作业执行,jobSays:" + content);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler().Result;

            scheduler.Start();       //开启调度器

            ITrigger trigger2 = TriggerBuilder.Create()
                                       .WithIdentity("mytrigger", "group1")
                                       .StartNow()
                                       .WithCronSchedule("/5 * * ? * *")    //时间表达式,5秒一次     
                                       .Build();

            IJobDetail job2 = JobBuilder.Create<DumbJob>()
                              .WithIdentity("myJob", "group1")
                              .UsingJobData("jobSays", "Hello World!")
                              .Build();
            scheduler.ScheduleJob(job2, trigger2);

            Console.Read();
        }
    }
复制代码

 

posted @   星星c#  阅读(163)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示