文档章节

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

奋斗到天明
 奋斗到天明
发布于 2015/08/27 16:22
字数 446
阅读 848
收藏 1

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

© 著作权归作者所有

共有 人打赏支持
奋斗到天明
粉丝 18
博文 112
码字总数 82707
作品 0
昌平
程序员
定时调度系列之Quartz.Net详解

一. 背景   我们在日常开发中,可能你会遇到这样的需求:"每个月的3号给用户发信息,提醒用户XXX "、"每天的0点需要统计前一天的考勤记录"、"每个月的1号计算上个月的库存情况"、"定时初始...

dotNET跨平台
06/24
0
0
Python任务调度模块 – APScheduler

APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务、并以daemon方式运行应用。目前最新版本为3.0.x。 在APS...

ArlenXu
2016/04/13
85
0
基于Mesos的作业云 Elastic-Job-Cloud 源码分析 —— 作业调度(一)

本文基于 Elastic-Job V2.1.5 版本分享 Elastic-Job-Cloud 源码分析系列(6篇)传送门 1. 概述 2. 作业执行类型 3. Producer 发布任务 3.1 常驻作业 3.2 瞬时作业 3.3 小结 4. TaskLaunchSch...

芋道源码掘金Java群217878901
2017/09/07
0
0
Python任务调度模块 – APScheduler

APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务、并以daemon方式运行应用。目前最新版本为3.0.x。 在APS...

shawnplaying
2016/09/19
73
0
定时任务发展史(一)

定时任务是互联网行业里最常用的服务之一,本文给大家介绍定时任务在我司的发展历程。 linux系统中一般使用crontab命令来实现,在Java世界里,使用最广泛的就是quartz了。我司使用quartz就已...

ityouknow
2017/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

kernel version does not match DSO version

错误信息: kernel version 384.11 does not match DSO version 384.130.0 原因是: cuda driver版本太低,不匹配DSO 简单有效的修复方法,升级nvidia driver, 步骤如下: 1. google seach ...

刘小米
今天
0
0
maven坐标和依赖

一、maven坐标详解 <groupId>com.fgt.club</groupId><artifactId>club-common-service-facade</artifactId><version>3.0.0</version><packaging>jar</packaging> maven的坐标元素说......

老韭菜
今天
1
0
springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//......

隐士族隐逸
今天
1
0
基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
今天
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部