⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scheduledserviceexecutor.java.svn-base

📁 自动导入文件到数据库,用于那些无法实时入库,定点时间入库的需求
💻 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 + -