package com.uas.search.schedule;

import com.uas.search.annotation.NotEmpty;

import java.util.List;

/**
 * 管理定时任务
 * 
 * @author sunyj
 * @since 2016年12月19日 上午10:52:29
 */
public interface TaskService {
	/**
	 * 建立定时任务
	 * 
	 * @param taskInformation
	 *            定时任务的信息
	 */
	public void newTask(TaskInformation taskInformation);

	/**
	 * 根据指定的 code，移除定时任务
	 *
	 * @param code 任务的 code
	 */
	void remove(@NotEmpty("code") String code);

	/**
	 * 是否存在定时任务
	 *
	 * @param code 任务的 code
	 * @return true 则存在
	 */
	boolean exist(@NotEmpty("code") String code);

	/**
	 * 获取定时任务信息
	 * 
	 * @return
	 */
	public List<TaskInformation> allTaskInformations();

	/**
	 * 开启定时任务
	 * 
	 * @return 返回的结果
	 */
	public String start();

	/**
	 * 关闭定时任务
	 * 
	 * @return 返回的结果
	 */
	public String stop();

	/**
	 * 定时任务是否停止
	 * 
	 * @return
	 */
	public boolean isStopped();

}
