cronjob不执行java,spring+quartz 定时任务无法执行,请大神帮忙见见

spring+quartz 定时任务无法执行,请大神帮忙看看

项目中的定时任务无法启动,创建任务时是正常的,但是到了执行的时间,任务没有一点反应

东西是照着我之前的一个工程搬过来的,上一个项目没有问题

照着这个帖子处理的http://www.meiriyouke.net/?p=131

spring配置文件

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

加载scheduler

private Scheduler scheduler;

private Scheduler getScheduler(){

if(scheduler == null){

scheduler = (Scheduler)SpringBeanLoader.getSpringBean("schedulerFactoryBean");

}

return scheduler;

}

创建任务

private void jobCreate(Dto dto, CronTrigger cronTrigger) throws Exception{

Class extends Job> jobClass = (Class extends Job>) Class.forName(dto.getAsString("jobclass"));

//不存在,创建一个

if (cronTrigger == null) {

ScheduleUtils.createScheduleJob(getScheduler(), dto, jobClass);

} else {

//已存在

return;

}

}

public static void createScheduleJob(Scheduler scheduler, Dto dto,

Class extends Job> jobClass) throws SchedulerException {

//构建job信息

JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(

dto.getAsString("schedulerid"), dto.getAsString("companyid")).build();

//放入参数,运行时的方法可以获取

jobDetail.getJobDataMap().put(JOB_PARAM_KEY, dto);

//表达式调度构建器

CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(dto.getAsString("cronexpression"));

//按新的cronExpression表达式构建一个新的trigger

CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(dto.getAsString("schedulerid"), dto.getAsString("companyid"))

.withSchedule(scheduleBuilder).build();

scheduler.scheduleJob(jobDetail, trigger);

}

------解决思路----------------------

看看这个呢。/

------解决思路----------------------

我现在做的一个轮询,你参考:

spring配置:

class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

0 0 0/2 * * ?

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

excuteUpdate

java代码:

public class UpdateSchedulePayEndDateTask implements Serializable{

private static final long serialVersionUID = 1L;

private static final Logger logger = LoggerFactory.getLogger(UpdateSchedulePayEndDateTask.class);

@Resource

private MeetingScheduleService meetingScheduleService;

public void excuteUpdate(){

logger.info("启动轮询:查询出所有付款截止时间小于当前时间的会议集合,并修改成取消");

meetingScheduleService.releaseSchdlByPayDateEnd();//这里是业务操作

}

}

很简单~

------解决思路----------------------

直接 task注解扫描。 

@Scheduled(cron = "*/5 * * * * ?")

//@Scheduled(fixedDelay = 5000)

public void demoServiceMethod() {

System.out.println("Method executed at every 5 seconds. Current time is :: " + (new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date()));

}

------解决思路----------------------

http://yangpanwww.iteye.com/blog/797563

看一下这个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值