Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在mule中实现Quartz调度器_Java_Mule_Quartz Scheduler_Esb_Anypoint Studio - Fatal编程技术网

Java 在mule中实现Quartz调度器

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

这是我第一次尝试在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.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