📄 scheduledserviceexecutor.java.svn-base
字号:
package com.onet.autobill.scheduler;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
import com.onet.serviceframework.common.BussinessService;
/**
* @author linyue,mengwei
*
* 任务启动的执行类
*/
public class ScheduledServiceExecutor implements BussinessService {
private static Logger logger = Logger
.getLogger(ScheduledServiceExecutor.class);
private String serviceName = "定时任务执行服务";
private List<ScheduledService> scheduledServiceList;
private ScheduledExecutorService scheduledExecutorService;
public String getServiceName() {
return serviceName;
}
public boolean initService() {
if (scheduledServiceList == null) {
logger.error("任务初始化失败,请查看配置文件");
return false;
} else
scheduledExecutorService = Executors.newScheduledThreadPool(scheduledServiceList.size());
return true;
}
public void shutDownService() {
try {
for(ScheduledService scheduledService : scheduledServiceList){
scheduledService.shutDown();
}
scheduledExecutorService.shutdownNow();
if (!scheduledExecutorService.awaitTermination(3000, TimeUnit.MILLISECONDS))
logger.warn("关闭计划任务失败");
} catch (InterruptedException e) {
logger.warn("计划任务关闭异常", e);
} catch (Exception ex) {
logger.error(serviceName + "关闭失败", ex);
}
logger.info(serviceName + "已关闭");
}
/**
* 任务初始化启动
*/
public boolean startService() {
boolean success = true;
try {
for(ScheduledService scheduledService : scheduledServiceList){
if(scheduledService.init()){
scheduledExecutorService.scheduleAtFixedRate(scheduledService, scheduledService
.getScheduleStartTime(), scheduledService
.getScheduleRefreshTime(), TimeUnit.SECONDS);
logger.info(scheduledService.getScheduledServiceName()
+ "初始初始化加载成功,并启动定时服务");
}else{
success = false;
logger.warn(scheduledService.getScheduledServiceName()
+ "初始初始化加载失败,定时服务未启动");
break;
}
}
} catch (Exception e) {
logger.error(serviceName + "启动失败", e);
success = false;
}
return success;
}
public List<ScheduledService> getServices() {
return scheduledServiceList;
}
public void setServices(List<ScheduledService> tasks) {
this.scheduledServiceList = tasks;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -