Quartz Scheduler-使用PostgreSQL服务器调度作业

时间:2018-09-10 14:29:06

标签: c# postgresql cron quartz-scheduler job-scheduling

我有一个简单的winform应用程序,其中有两个按钮。在第一个按钮上,单击我创建一个作业并将其存储在我的postgres服务器中。在第二个按钮上,单击“我启动调度程序以执行作业”。目前,我的工作不过是测试代码而已。但是由于某种原因它没有执行。

Button1_click(创建作业并将其存储在数据库中)

// define the job and tie it to our HelloJob class
IJobDetail job = JobBuilder.Create<QuartzSchedulerTest.HelloJob>()
.SetJobData(data)
.WithIdentity("job1", "group1")
.Build();

// Trigger the job to run now, and then repeat every 10 seconds
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartAt(dt)      
.Build();

启动调度程序,这是在另一个按钮后面执行的

StdSchedulerFactory factory = new StdSchedulerFactory(RemoteConfig());
var scheduler = await factory.GetScheduler();

// Tell quartz to schedule the job using our trigger
await scheduler.ScheduleJob(job, trigger);

Task.Run(async () =>
{
    StdSchedulerFactory factory = new StdSchedulerFactory(RemoteConfig());

    // get a scheduler
    IScheduler sched = await factory.GetScheduler();

    if (!sched.IsStarted)
    await sched.Start();

    MessageBox.Show("Remote Server has been started..");

    }).Wait();

正在我的表和简单触发器表中创建作业,我看到它们的执行次数一次又一次地增加,但是我不明白为什么作业不执行其中写入的代码(创建一个简单的新文件)的原因

以前我有两个应用程序,调度程序启动是在单独的控制台应用程序上,但它给我一个错误,即找不到Type HelloJob类型,因此我合并了两个代码以仅使用一种Win形式运行,但无法正常工作。

编辑:

我在表中看到触发器的开始时间是636722449846942313,我相信时代不是当前时间或不久的将来。同样在qrtz_simple_triggers中,times_triggered为0。作业没有执行。

0 个答案:

没有答案