Play 1.x框架学习之四:定时作业调度 (job scheduler In play framework)

Play框架提供了定时执行任务的功能模块,也就是Job。大家可以用来做一些定时的任务,如数据汇总,定时同步等。play使用了Quartz项目。可以轻松地定制调度任务的时间。Play框架还预置了几种调度方式,如项目启动调度,启动异步调动,每多少时间调度,和通用的Quartz调度设置。 首先我们看看启动调度,启动调度是同步于项目启动:

package job;

import play.jobs.Job;
import play.jobs.OnApplicationStart;

@OnApplicationStart
public class JobOnStart extends Job{
	@Override
	public void doJob() throws Exception {
		super.doJob();
		System.out.println("Hello Job!");
	}
}

还有启动异步调度:

package job;

import play.jobs.Job;
import play.jobs.OnApplicationStart;

@OnApplicationStart(async = true)
public class JobOnStartAsync extends Job{
	@Override
	public void doJob() throws Exception {
		super.doJob();
		System.out.println("Hello Job, this is a async!");
	}
}

然后还有每多少时间调度:

package job;

import play.jobs.Every;
import play.jobs.Job;

@Every("1min")
public class JobOnSomeTime extends Job{
	@Override
	public void doJob() throws Exception {
		System.out.println("Hello Clock! Minute Over!");
	}
}

还有通用的Quartz调度:

package job;

import play.jobs.Job;
import play.jobs.On;

@On(value = "0 28 11 ? * *")
public class JobOnCommon extends Job{
	public void doJob() throws Exception {
		System.out.println("Hello 11:28!");
	}
}

控制台的打印:

11:26:17,730 INFO  ~ Application 'Proto' is now started !
Hello Job!
Hello Job, this is a async!
11:26:17,903 INFO  ~ Listening for HTTP on port 9000 ...
Hello Clock! Minute Over!
Hello 11:28!
Hello Clock! Minute Over!
Hello Clock! Minute Over!
Hello Clock! Minute Over!

Quartz 是个开放源码项目,提供了丰富的作业调度集。上面表达式中@on注解对应的字段是: Seconds Minutes Hours DayofMonth Month DayofWeek Year(year为可选字段,一般可以省略) 如:0 28 11 ? * * :每天11点28分 24 30 1 ? * WED : 每周三1点20分24秒 

更详细的介绍可以查考官网: http://quartz-scheduler.org/ 

IBM的developerworks中也有文章: http://www.ibm.com/developerworks/cn/java/j-quartz/index.html 

百度文库中的介绍: http://wenku.baidu.com/view/0e3b19e6f8c75fbfc77db22a.html

转载于:https://my.oschina.net/markho/blog/498132

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值