C# 如何在Quartz中重新安排触发器

C# 如何在Quartz中重新安排触发器,c#,quartz-scheduler,C#,Quartz Scheduler,我正在用C#中的石英制作背景工作。这是我的密码: public class BackgroundConfig { private IScheduler scheduler; public BackgroundConfig() { scheduler = StdSchedulerFactory.GetDefaultScheduler(); scheduler.Start(); } public void ScheduleP

我正在用C#中的石英制作背景工作。这是我的密码:

public class BackgroundConfig
{
    private IScheduler scheduler;

    public BackgroundConfig()
    {
        scheduler = StdSchedulerFactory.GetDefaultScheduler();
        scheduler.Start();
    }

    public void ScheduleParser()
    {
        IJobDetail job = JobBuilder.Create<ParseJob>()
            .WithIdentity("Parser", "Job")
            .Build();

        ITrigger trigger = TriggerBuilder.Create()
            .WithIdentity("ParserTrigger", "Trigger")
            .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(4, 0))
            .Build();

        scheduler.ScheduleJob(job, trigger);   
    }
}

如您所见,有一个名为
RescheduleJob(triggerKey,newTrigger)
的函数,但我不知道如何从另一个类获取
ParserTrigger
的触发器键。请帮帮我。非常感谢。

从mermory,您可以执行以下操作:

IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

var trigger = scheduler.GetTrigger("ParserTrigger","Trigger");
scheduler.RescheduleJob(trigger.JobName, trigger.JobGroup, trigger);

(注意-未测试!)

抱歉,已删除“全局”命名空间。同样,这是未经测试的,但希望能为您指明正确的方向。对不起,您能看看
GetTrigger
签名吗?它只接受
TriggerKey
,不接受触发器名称和组。根据文档,这在第2版中发生了更改-因此,请查看您的代码并传入密钥。我知道我必须传入密钥,但当我在另一个类中时,我不知道如何获取密钥,不是
BackgroundConfig
类。假设
BackgroundConfig
已经完成了设置,那么在另一个类中,您将获得我在回答中所示的DefaultScheduler,并再次按字符串获取触发器,如图所示
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

var trigger = scheduler.GetTrigger("ParserTrigger","Trigger");
scheduler.RescheduleJob(trigger.JobName, trigger.JobGroup, trigger);