package com.mogujie.tt.task;
import com.mogujie.tt.timer.TimerHelper;
/**
* @Description: 后台任务管理器
* @author ziye - ziye[at]mogujie.com
* @date 2014-4-16 下午3:16:00
*/
public class TaskManager {
private static TaskManager instance = new TaskManager();
private static final int TRIGGER_DELAY_SECOND = 1000;
private TaskTrigger trigger;
private TimerHelper timerHelper;
private TaskManager() {
trigger = new TaskTrigger();
timerHelper = new TimerHelper(TRIGGER_DELAY_SECOND, trigger);
startTrigger();
}
public static TaskManager getInstance() {
if (null == instance) {
synchronized (instance) {
instance = new TaskManager();
}
}
return instance;
}
public boolean trigger(ITask task) {
if (null != task) {
return trigger.trigger(task);
}
return true;
}
/**
* @Description: 停止出发所有task
* @return
*/
public boolean stopTrigger() {
if (null != timerHelper && timerHelper.isRunning()) {
timerHelper.stopTimer();
}
return true;
}
/**
* @Description: 开启触发
* @return
*/
public boolean startTrigger() {
if (null != timerHelper && !timerHelper.isRunning()) {
timerHelper.startTimer(true);
}
return true;
}
}