使用自定义触发器和参数计划作业
我正在使用Grails Quartz插件,并希望使用程序创建的触发器来安排我的作业。 我不知道执行间隔会是什么。 我希望工作无限期地执行。
文档给出了一些如何计划/触发作业的例子:
==动态作业调度==
从0.4.1版本开始,您可以动态安排作业执行。
这些方法可用:
MyJob.schedule(String cronExpression, Map params?)创建cron触发器; MyJob.schedule(Long repeatInterval, Integer repeatCount?, Map params?)创建简单的触发器:重复执行repeatCount + 1次,延迟repeatInterval毫秒; MyJob.schedule(Date scheduleDate, Map params?)将一项作业执行安排到特定日期; MyJob.schedule(Trigger trigger)使用自定义触发器来安排作业的执行;   MyJob.triggerNow(Map params?)强制立即执行作业。 
每个方法(自定义触发器除外)都有可选的'params'参数。 您可以使用它将一些数据传递给您的工作,然后从工作中访问它。
Grails版本1.3.7 Quartz插件版本0.4.2
  那么,为什么MyJob.schedule(Trigger trigger)不带参数?  而且,如何使用自定义触发器和地图或参数来实现我想要的功能? 
  如果你在Quartz插件源代码中查看这些方法的定义,你可以看到所有带Map params的函数都是包装器,它们创建一个Trigger ,然后将其发送给调度器。 
  MyJob.schedule(Trigger trigger)方法只是触发你传递的触发器,所以在你调用这个方法之前,你需要将你的参数添加到Triggers jobDataMap属性中,例如: 
trigger.jobDataMap.putAll [foo:"It Works!"]
MyJob.schedule( trigger )
tim答案是正确的,这里有点更新。
Trigger trigger = TriggerBuilder
                .newTrigger()
                .startNow()
                .withIdentity("triggerName", "groupName")
                .withSchedule(
                SimpleScheduleBuilder.simpleSchedule()
                .withIntervalInSeconds(5000).repeatForever()
                ).build();
        trigger.jobDataMap.putAll([foo:"bar"])
        MyJob.schedule(trigger)
                        链接地址: http://www.djcxy.com/p/23623.html
                        上一篇: Schedule Job with custom Trigger and params
下一篇: Undoing git reset?
