quartz数据库分布式创建定时任务,出现任务状态error,这些任务无法执行

在配置spring-quartz.xml时,遇到使用quartz数据库分布式创建定时任务后,任务状态显示为error,导致任务无法执行。配置中包括了任务工厂声明、数据源设置、quartz配置文件引用以及通过quartz上下文获取spring上下文的配置。问题可能出在数据源连接、配置文件读取或任务实现上。
摘要由CSDN通过智能技术生成

我当时配置的方式是,可能大部分人的配置方式和我类似,如:

1、配置spring-quartz.xml的配置文件,内容如下

        <!-- 声明任务工厂 -->  

<bean id="scheduler" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
        <property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:quartz.properties" />
		
		<property name="applicationContextSchedulerContextKey" value="applicationContextKey"/>    
    </bean>  

可以看到  scheduler的对象来源是spring的类 org.springframework.scheduling.quartz.SchedulerFactoryBean
 配置数据源 ref="dataSource" ,加载quartz的配置文件 
<property name="configLocation" value="classpath:quartz.properties" />
通过quartz的上下文获取spring上下文的配置
<property name="applicationContextSchedulerContextKey" value="applicationContextKey"/>    
 2、quartz的任务实现方式ScheduleJobServiceImpl



package com.credithc.accent.service.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.TriggerKey;
import org.quartz.impl.matchers.GroupMatcher;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.credithc.accent.model.ScheduleJob;
import com.credithc.accent.service.ScheduleJobService;



/**
 * 定时任务 service
 * @author ty
 * @date 2015年1月13日
 */
@Service("scheduleJobService")
public class ScheduleJobServiceImpl implements ScheduleJobService{
	

	@Autowired
	private Scheduler scheduler;
	
	/**
	 * 添加定时任务
	 * @param ScheduleJob
	 */
	public void add(ScheduleJob scheduleJob){
		@SuppressWarnings("rawtypes")
		Class job = null;
		try {
			job = Class.forName(scheduleJob.getClassName());
		} catch (ClassNotFoundException e1) {
			e1.printStackTrace();
		}
		@SuppressWarnings("unchecked")
		JobDetail jobDetail = JobBuilder.newJob(job).withIdentity(scheduleJob.getName(), scheduleJob.getGroup()).build(); 
		//表达式调度构建器(可判断创建SimpleScheduleBuilder)
		CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression());
		jobDetail.getJobDataMap().put("scheduleJob", sche
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值