【问题标题】:Quartz.Net Trigger Scheduled Job On DemandQuartz.Net 按需触发计划作业
【发布时间】:2015-08-27 06:36:13
【问题描述】:

我有一些 Quartz.Net 作业按计划运行

scheduler.ScheduleJob(
new JobDetailImpl("MarkAsSolutionReminderJob", typeof(MarkAsSolutionReminderJob)),
new CalendarIntervalTriggerImpl("MarkAsSolutionReminderJobTrigger", IntervalUnit.Hour, 6));

我是否可以在需要时手动触发此作业运行?

所以它会继续正常运行,但在一段特定的代码中,我可能只想不按计划运行一次或两次。但是不影响预定的作业吗?

【问题讨论】:

    标签: quartz-scheduler quartz.net


    【解决方案1】:

    我是否可以手动触发此作业在我需要时运行?

    是的,您可以在需要时触发此作业。

    使用void TriggerJob(JobKey jobKey) 方法如下:

    scheduler.TriggerJob(new Jobkey("MarkAsSolutionReminderJob"));
    

    如果您想在按需执行时将一些数据传递给作业,您也可以通过使用另一个重载void TriggerJob(JobKey jobKey, JobDataMap data); 来实现,方法如下:

    Dictionary<string, string> data = new Dictionary<string, string>();
    //populate dictionary as per your needs
    JobDataMap jobData = new JobDataMap(data);
    scheduler.TriggerJob(new Jobkey("MarkAsSolutionReminderJob"),jobData);
    

    【讨论】:

    • 谢谢。请查看更新后的问题,我已经尝试过此代码,但它不起作用。
    • @leen3o 您之前是否将作业持久化到数据库中?
    • 这很好用。在我的调试点之前的任务中有错误!谢谢
    • 是否可以在不实际调度的情况下运行该作业?
    • @UlyssesAlves 如果不想调度函数为什么不直接调用呢? Quartz 用于按特定时间表运行函数/作业。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多