1.定时任务表:数据库录入定时任务的数据
CREATE TABLE `t_timertask` (
`task_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
`user_id` int(11) DEFAULT NULL COMMENT '用户ID',
`task_type` int(10) DEFAULT NULL COMMENT '类型(1:节目,2:广告,3:垫片,4:LED,5:框架,6:广告排片)',
`task_title` varchar(60) DEFAULT NULL COMMENT '标题',
`task_time` datetime DEFAULT NULL COMMENT '任务执行时间',
`task_status` int(11) DEFAULT '0' COMMENT '任务执行状态(0:未执行,1:已执行)',
`task_method` varchar(30) DEFAULT NULL COMMENT '任务方法',
`task_param` text COMMENT '任务参数',
`status` int(11) DEFAULT '0' COMMENT '使用标志(1使用/-1删除)',
PRIMARY KEY (`task_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1027 DEFAULT CHARSET=utf8 COMMENT='定时发布任务表'
public class TimerTaskServer {
private static Logger logger = Logger.getLogger(TimerTaskServer.class);
/** 休眠时间(分钟) */
private int minute = 60;
public void start() {
logger.info("----------------start TimerTaskServer----------------");
logger.info("minute:"+minute);
TimerTaskRunnable task = new TimerTaskRunnable(minute);
new Thread(task).start();
logger.info("start TimerTaskServer SUCCESS");
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
this.minute = minute;
}
public static void main(String[] args) {
new TimerTaskServer().start();
}
}
/**
* 执行定时任务
* @return
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public boolean executeTimerTask(int minute){
try {
List
3.执行业务
/**
* 文件发布
* @param filemap 文件信息
* @param task_id 任务ID
* @return
*/
@SuppressWarnings("rawtypes")
public Map execute(Map filemap, int task_id, String task_method){
logger.info("start:publish");
TransactionTemplate tt = DABroker.getInstance().getTransactionTemplate();
Map result = new HashMap();
Map param = new HashMap();
try {
if("publish".equals(task_method)){
PublishTransactionCallback callback = new PublishTransactionCallback(filemap, result, param, task_id);
tt.execute(callback);
} else if("republish".equals(task_method)){
RePublishTransactionCallback callback = new RePublishTransactionCallback(filemap, result, param, task_id);
tt.execute(callback);
}
} catch (Exception e) {
e.printStackTrace();
}
logger.info("end:publish:" + result);
return FileActionManager.callCS(param, result);
}
//对数据库的操作
/**
* 文件发布事物处理类
* @author
*
*/
public class PublishTransactionCallback implements TransactionCallback{
private static Logger logger = Logger.getLogger(PublishTransactionCallback.class);
private Map map = new HashMap();
private Map result = new HashMap();
private Map param = new HashMap();
private int task_id;
/**
* 文件发布事物处理类
* @param filemap需要发布的文件信息
处理结果
处理完成后需要收集的参数
定时任务ID
*/
public PublishTransactionCallback(Map filemap, Map result, Map param, int task_id) {
super();
this.map = filemap;
this.result = result;
this.param = param;
this.task_id = task_id;
}
@Override
public Object doInTransaction(TransactionStatus status) {
return null;
}
}