标签: quartz-scheduler

立即执行工作

我打算用石英计划后立即开始紧急工作.我的代码在下面.我将当前时间作为startTime.Bnt计划后需要30-40秒才能完成工作.如何立即运行.

// Trigger the job to run now, and then repeat every 40 seconds 
jobTrigger= newTrigger() 
.withIdentity(Long.toString(emergencyJob.getId()), Long.toString(emergencyJob.getVariant().getId())) 
.withPriority(emergencyJob.getPriority()) 
.startAt(new Date(ctime)) 
.withSchedule(simpleSchedule().withMisfireHandlingInstructionFireNow() 
) 
.build(); 

scheduler.scheduleJob(jobDetail, jobTrigger);
Run Code Online (Sandbox Code Playgroud)

java quartz-scheduler

0
推荐指数
1
解决办法
5729
查看次数

使用Quartz安排作业

我刚刚开始学习Quartz调度,在第一步中我遇到了问题.
我在其主要网站上查看它的示例,但是当我尝试在我的工作区中开发它时,它给了我错误.

package testing.quartz.scheduler;

    import java.util.Date;
    import java.util.logging.Logger;

    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerFactory;
    import org.quartz.Trigger;
    import org.quartz.impl.StdSchedulerFactory;

    public class TesterMain {

        /**
         * @param args
         */
         public void run() throws Exception {


                // First we must get a reference to a scheduler
                SchedulerFactory sf = new StdSchedulerFactory();
                Scheduler sched = sf.getScheduler();


                // computer a time that is on the next round minute
                Date runTime = evenMinuteDate(new Date());<--Here its giving me error


                // define the job and tie it to …
Run Code Online (Sandbox Code Playgroud)

java scheduled-tasks quartz-scheduler

0
推荐指数
1
解决办法
4413
查看次数

@Scheduled任务无法启动

我正在尝试使用@Scheduled功能.我已经按照这个教程,但我不能让我的计划任务被执行.

我创造了一个工人:

@Component("syncWorker")
public class SyncedEliWorker implements Worker {
    protected Logger logger = Logger.getLogger(this.getClass());

    public void work() {
        String threadName = Thread.currentThread().getName();
        logger.debug("   " + threadName + " has began to do scheduled scrap with id=marketwatch2");
    }
}
Run Code Online (Sandbox Code Playgroud)

和SchedulingService:

@Service
public class SchedulingService {
    protected Logger logger = Logger.getLogger(this.getClass());

    @Autowired
    @Qualifier("syncWorker")
    private Worker worker;

    @Scheduled(fixedDelay = 5000)
    public void doSchedule() {
        logger.debug("Start schedule");

        worker.work();
        logger.debug("End schedule");
    }
}
Run Code Online (Sandbox Code Playgroud)

并尝试在我的applicationcontext中进行不同的布线.最终版本如下:

<beans xmlns=...
       xmlns:task="http://www.springframework.org/schema/task"
       ...
       xsi:schemaLocation=" ..
                            http://www.springframework.org/schema/task …
Run Code Online (Sandbox Code Playgroud)

spring annotations spring-mvc quartz-scheduler

0
推荐指数
1
解决办法
913
查看次数

如何在 Quartz 调度器中配置多于一个节点的集群?

我在基于 maven 的应用程序中使用 Quartz 调度程序和 MySql 作为 JobStore,我想实现 Quartz 的集群功能,但我不知道如何在集群中添加多个节点以及 Quartz 如何了解节点并管理它们?

简而言之,我想了解 Quartz 的实际工作原理以及如何设置集群环境。

任何帮助将不胜感激。

谢谢

quartz-scheduler maven

0
推荐指数
1
解决办法
2809
查看次数

尝试使用Grails的Quartz插件编译错误

我正在尝试安装和使用Grails的Quartz插件.我的grails版本是2.3.7

我添加compile ":quartz:1.0.1"到我的Build.config中; 并下载quartz-2.2.1.jarquartz-jobs-2.2.1.jar; 然后将这些.jar文件添加到我的/lib文件夹中.

当我尝试时grails run-app,出现以下错误:

Compile error during compilation with javac.
C:\Users\username\Documents\NetBeansProjects\Siscoserv-web\target\work\plugins\quartz-1.0-RC11\src\java\grails\plugins\quartz\CustomTriggerFactoryBean.java:51: error: inconvertible types
        if(customTrigger instanceof AbstractTrigger){
           ^
  required: AbstractTrigger
  found:    Trigger
C:\Users\username\Documents\NetBeansProjects\Siscoserv-web\target\work\plugins\quartz-1.0-RC11\src\java\grails\plugins\quartz\CustomTriggerFactoryBean.java:52: error: inconvertible types
            AbstractTrigger at =(AbstractTrigger) customTrigger;
                                                  ^
  required: AbstractTrigger
  found:    Trigger
C:\Users\username\Documents\NetBeansProjects\Siscoserv-web\target\work\plugins\quartz-1.0-RC11\src\java\grails\plugins\quartz\CustomTriggerFactoryBean.java:56: error: no suitable method found for setJobKey(Key)
                at.setJobKey(jobDetail.getKey());
                  ^
    method AbstractTrigger.setJobKey(JobKey) is not applicable
      (actual argument Key cannot be converted to JobKey by method invocation conversion)
    method …
Run Code Online (Sandbox Code Playgroud)

grails quartz-scheduler

0
推荐指数
1
解决办法
1429
查看次数

Quartz PersistJobDataAfterExecution 执行后不存储

我使用quartz 2.2.1和mysql als jdbc store,我有一个简单的工作是这样的:

package foo;

import org.quartz.*;

@PersistJobDataAfterExecution
@DisallowConcurrentExecution
public class FooJob2 implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        int count = (int) jobExecutionContext.getJobDetail().getJobDataMap().get("foobar");
        System.out.println("lala neu 3 " + count);
        jobExecutionContext.getJobDetail().getJobDataMap().put("foobar", count++);

    }
}
Run Code Online (Sandbox Code Playgroud)

我像这样安排作业,但是任何时候作业打印 foobar 编号都不会增加。我该怎么做才能使作业持久化 jobdatamap?

public class TestStore {
    public static void main(String[] args) throws SchedulerException, InterruptedException {
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        scheduler.start();

        JobDataMap data = new JobDataMap();
        data.put("foobar", 12);
        // data.put("foobar", "12");

        // define the job and tie it to …
Run Code Online (Sandbox Code Playgroud)

java quartz-scheduler

0
推荐指数
1
解决办法
3587
查看次数

使用 Quartz 的每日作业调度程序

要求:

2015-02-11 到 2015-02-15 / 10:30 到 11:30 作业要执行,当 11:30 时间到来时,它应该停止它应该发生的作业,直到第 15 天到来。

在这里,我有 Quartz 1.8.6 lib,但无法为此获得正确的实现。请帮助我们解决这个问题。

示例程序:

        SimpleDateFormat    formateDate = new SimpleDateFormat("mm/DD/yyyy HH:mm");         
        SchedulerFactory sf = new StdSchedulerFactory(AppConstants.QUARTZ_PROP_FILE);
        log.info("------- invoking scheduler ----------------------");

        System.out.println("------- invoking scheduler ----------------------");
        Scheduler sched = sf.getScheduler();


        java.util.Calendar startCal = java.util.Calendar.getInstance();
        startCal.setTime(formateDate.parse(startDate));


        java.util.Calendar endCal = java.util.Calendar.getInstance();
        endCal.setTime(formateDate.parse(endDate));


        System.out.println("start/end : " + startCal.getTime() + "/"+endCal.getTime());
        DailyCalendar cal = new DailyCalendar(startTime, endTime);

    //  cal.setTimeRange(startTime, endTime);
        cal.setInvertTimeRange(true);
        Calendar quartzCal = cal;

        sched.addCalendar("quartzCal", quartzCal, true, true);


        //makeDailyTrigger(tgName, 12, 15)
        JobDetail …
Run Code Online (Sandbox Code Playgroud)

java scheduler quartz-scheduler quartz-core

0
推荐指数
1
解决办法
3470
查看次数

Quartz 调度程序未运行

我想在我的网络应用程序中每五秒发布一条消息,我正在使用 Quatz 来安排这个任务。这是我的代码

public class InvoiceGenerationSchedular implements ServletContextListener {

@Override
public void contextDestroyed(ServletContextEvent arg0) {
    System.out.println("Listener is off");
}

@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
    System.out.println("Listener initialized.");

    JobDetail job = JobBuilder.newJob(HelloJob.class)
            .withIdentity("dummyJobName", "group1").build();
    Trigger trigger = TriggerBuilder
            .newTrigger()
            .withIdentity("dummyTriggerName", "group1")
            .withSchedule(

    CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build();

            //schedule it
    Scheduler scheduler;
        try {
            scheduler = new StdSchedulerFactory().getScheduler();               
            scheduler.start();
            scheduler.scheduleJob(job, trigger);

        } catch (SchedulerException e) {                    
            e.printStackTrace();            
        }

}

class HelloJob implements Job
{

    @Override
    public void execute(JobExecutionContext arg0) throws JobExecutionException …
Run Code Online (Sandbox Code Playgroud)

java quartz-scheduler

0
推荐指数
2
解决办法
8308
查看次数

Spring 与 Quartz 完全集成以实现实时通知电子邮件

我目前正在使用 spring boot 开发一个应用程序,让用户创建一个约会。所以基本上约会有一个 startDateTime 和一个 endDateTime 字段 + 一个电子邮件。约会的创建在 MySql 数据库的约会表中添加了一个新行。

我想要做的是在数据库中定义的 startDateTime 之前一小时通过电子邮件通知用户。我寻找了一种解决方案,但找不到。我发现工作(春季批次)可以做到这一点,但工作依赖于频率检查(天、周、月),我正在寻找的是实时通知。欢迎任何有关实现此类任务的解决方案的帮助或指导。

你好

notifications spring quartz-scheduler spring-boot

0
推荐指数
1
解决办法
2089
查看次数

Quartz 作业不参与 Spring 托管事务(Quartz + Spring Batch Boot)

如果在 Spring Batch 中触发作业执行,我有几个 Spring Batch 作业可以正常工作。这些作业将使用 JpaItemWriter 读取和写入数据库,其中需要事务。

我的问题是,我有配置为定期运行这些作业的石英调度程序,我收到“javax.persistence.TransactionRequiredException: no transaction is in progress”错误。我知道目前石英正在实例化作业 bean 而不是 spring 本身,这使得 bean 不知道 spring 管理的正在进行的事务,如果我错了,请纠正我。

但是,我尝试了很多方法,但都没有奏效。以下是我目前的配置:

石英属性

org.quartz.scheduler.instanceName=sample_instance
org.quartz.scheduler.instanceId=AUTO
org.quartz.threadPool.threadCount=5

org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreCMT
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate
org.quartz.jobStore.useProperties=true
org.quartz.jobStore.misfireThreshold=60000
org.quartz.jobStore.tablePrefix=QRTZ_

org.quartz.jobStore.isClustered=true
org.quartz.jobStore.clusterCheckinInterval=20000
Run Code Online (Sandbox Code Playgroud)

调度程序配置文件

@EnableScheduling
@Configuration
public class SchedulerConfig {

@Inject
private DataSource dataSource;

@Inject
private JobsListenerService jobsListenerService;

@Bean
public JobFactory jobFactory(ApplicationContext applicationContext) {
    AutowiringSpringBeanJobFactory jobFactory = new AutowiringSpringBeanJobFactory();
    jobFactory.setApplicationContext(applicationContext);
    return jobFactory;
}


@Bean
public SchedulerFactoryBean schedulerFactoryBean(JobFactory jobFactory)
        throws IOException {
    SchedulerFactoryBean factory = new SchedulerFactoryBean();
    factory.setJobFactory(jobFactory);
    factory.setDataSource(dataSource); …
Run Code Online (Sandbox Code Playgroud)

quartz-scheduler spring-batch spring-boot

0
推荐指数
1
解决办法
2661
查看次数