Java 在mule中实现Quartz调度器
这是我第一次尝试在Mule中使用Quartz调度程序。 我试图根据从DB获取的日期时间列表来安排流的开始时间 为了研究Quatrz调度器的工作,并基于java中的“时间列表”来调度作业,我做了以下示例Java 在mule中实现Quartz调度器,java,mule,quartz-scheduler,esb,anypoint-studio,Java,Mule,Quartz Scheduler,Esb,Anypoint Studio,这是我第一次尝试在Mule中使用Quartz调度程序。 我试图根据从DB获取的日期时间列表来安排流的开始时间 为了研究Quatrz调度器的工作,并基于java中的“时间列表”来调度作业,我做了以下示例 import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.quartz.JobDetail; import org
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
public class Main {
public static void main(String[] args) throws SchedulerException {
List<SimpleTrigger> triggerList = scheduleMyJob();
int i=0;
for(SimpleTrigger trigger: triggerList){
JobDetail jobDetail = new JobDetail();
jobDetail.setJobClass(Hellojob.class);
jobDetail.setName("MyJob"+ ++i);
Scheduler jobScheduler = new StdSchedulerFactory().getScheduler();
jobScheduler.start();
jobScheduler.scheduleJob(jobDetail, trigger);
}
}
public static List<SimpleTrigger> scheduleMyJob(){
List<SimpleTrigger> triggerList = new ArrayList<SimpleTrigger>();
SimpleTrigger sTrigger = new SimpleTrigger();
sTrigger.setStartTime(new Date(System.currentTimeMillis()+10000));
sTrigger.setName("C Trigger 1");
triggerList.add(sTrigger);
sTrigger = new SimpleTrigger();
sTrigger.setStartTime(new Date(System.currentTimeMillis()+20000));
sTrigger.setName("C Trigger 2");
triggerList.add(sTrigger);
sTrigger = new SimpleTrigger();
sTrigger.setStartTime(new Date(System.currentTimeMillis()+30000));
sTrigger.setName("C Trigger 3");
triggerList.add(sTrigger);
sTrigger = new SimpleTrigger();
sTrigger.setStartTime(new Date(System.currentTimeMillis()+40000));
sTrigger.setName("C Trigger 4");
triggerList.add(sTrigger);
return triggerList;
}
}
这很好,我得到了以下输出
Sat Oct 24 15:41:47 IST 2015: Hello Quartz World!! DEFAULT.MyJob1
Sat Oct 24 15:41:57 IST 2015: Hello Quartz World!! DEFAULT.MyJob2
Sat Oct 24 15:42:07 IST 2015: Hello Quartz World!! DEFAULT.MyJob3
Sat Oct 24 15:42:17 IST 2015: Hello Quartz World!! DEFAULT.MyJob4
现在我了解了Quartz的工作原理,但我很难将java代码与mule中Quartz的概念联系起来。我想在mule中实现完全相同的东西,稍后我可以用DB中的日期替换这些日期。如果你能指导我或给我举个例子,那将是非常有帮助的。
我只知道石英调度器,如果你有不同的想法,欢迎你
仅供参考。Hellojob将被包含记录器的流替换
[Tyring在mule中实现逻辑最终没有结果。因此我不在这里发布该代码,因为它可能会对我的真正目标给出错误的假设!!。上面的Java代码是一个完美的例子]要在Mule中实现批处理,您可以使用Mule批处理模块,该模块内部使用quartz scheduler,使您的生活更加轻松。您可以将CRON表达式指定给调度作业。请参考下面提到的文档,了解批处理作业在mule中的工作方式
Sat Oct 24 15:41:47 IST 2015: Hello Quartz World!! DEFAULT.MyJob1
Sat Oct 24 15:41:57 IST 2015: Hello Quartz World!! DEFAULT.MyJob2
Sat Oct 24 15:42:07 IST 2015: Hello Quartz World!! DEFAULT.MyJob3
Sat Oct 24 15:42:17 IST 2015: Hello Quartz World!! DEFAULT.MyJob4