package com.hqyg.disjob.register.job;
import java.util.List;
import org.apache.curator.framework.CuratorFramework;
import com.hqyg.disjob.common.exception.ZKNodeException2;
import com.hqyg.disjob.common.model.JobGroup;
import com.hqyg.disjob.register.domain.Job;
import com.hqyg.disjob.monitor.db.domain.DBUser;
import com.hqyg.disjob.monitor.db.domain.PageResultAndCategories;
public interface JobOperationService {
Job getJob();
List<Job> getJobList(String groupName) throws ZKNodeException2;
boolean addJob(Job job, String username) throws ZKNodeException2;
boolean updateJob(Job job);
boolean updateJob(CuratorFramework client ,Job job);
/**
* 暂停
* @param job
* @return
*/
boolean suspendJob(Job job);
/**
* 恢复
* @param job
* @return
*/
boolean resumeJob(Job job);
/**
* 创建任务组
* @param group
* @param username
* @return
*/
public boolean createGroup(JobGroup group, String username);
/**
* 查询所有的group列表
* @return
*/
public List<String> getAllGroup();
/**
* 根据组名查询所有的job列表
* @param groupName
* @return
*/
public List<Job> getJobListByGroup(String groupName);
/**
* 根据组名和job名查询具体的job列表
* @param groupName
* @param jobName
* @return
*/
public Job getJobByGroupAndJobName(String groupName ,String jobName);
/**
* 均分job到集群slave节点
* @return 0成功 ,1集群中在线的job节点少于2
* @throws Exception
*/
public int averageDistributeSlaveJob() throws Exception ;
/**
* 根据job组和job类别来查询
* @param groupName
* @param category
* @return
*/
PageResultAndCategories getJobListByGroupAndCategory(String groupName, String category);
List<String> getAllGroup(DBUser dbUser);
void fireNow(String groupName ,String jobName);
public boolean saveJob(Job job);
public boolean bindSessionAndGroup(String sessionName,String groupName);
public boolean bindSessionAndGroup(String sessionName, String oldGroup ,String newGroup);
void bindJob(List<String> sessions, List<String> groupNames);
void reBindJob(List<String> sessions, List<String> groupNames);
List<JobGroup> getAllJobGroupForPageList();
}