/** * Copyright 2016 vip.com. * <p> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * </p> */ package com.vip.saturn.job.console.service; import java.util.Collection; import java.util.List; import com.vip.saturn.job.console.domain.ExecutionInfo; import com.vip.saturn.job.console.domain.HealthCheckJobServer; import com.vip.saturn.job.console.domain.JobBriefInfo; import com.vip.saturn.job.console.domain.JobConfig; import com.vip.saturn.job.console.domain.JobMigrateInfo; import com.vip.saturn.job.console.domain.JobServer; import com.vip.saturn.job.console.domain.JobSettings; import com.vip.saturn.job.console.domain.JobStatus; import com.vip.saturn.job.console.domain.RegistryCenterConfiguration; import com.vip.saturn.job.console.exception.SaturnJobConsoleException; import com.vip.saturn.job.console.repository.zookeeper.CuratorRepository; public interface JobDimensionService { JobStatus getJobStatus(final String jobName); Collection<JobBriefInfo> getAllJobsBriefInfo(String sessionBsKey, String namespace); String geJobRunningInfo(final String jobName); String getJobType(final String jobName); JobSettings getJobSettings(String jobName, RegistryCenterConfiguration configInSession); JobConfig getHistoryJobConfigByHistoryId(Long historyId) throws SaturnJobConsoleException; String updateJobSettings(JobSettings jobSettings, RegistryCenterConfiguration configInSession); Collection<JobServer> getServers(String jobName); void getServersVersion(final String jobName, List<HealthCheckJobServer> allJobServers, RegistryCenterConfiguration registryCenterConfig); Collection<ExecutionInfo> getExecutionInfo(String jobName); boolean isJobEnabled(String jobName); /** * 获取作业执行日志信息 * @param jobName 作业名称 * @param item 分片号 * @return 日志信息 */ ExecutionInfo getExecutionJobLog(String jobName, int item); /** * 检查否是新版本的executor(新的域) * 旧域:该域下必须至少有一个executor并且所有的executor都没有版本号version节点 * 新域:该域下必须至少有一个executor并且所有的executor都有版本号version节点(新版本的executor才在启动时添加了这个节点) * 未知域:该域下没有任何executor或executor中既有新版的又有旧版的Executor * * @param version executor的版本号 * @return 当version参数为空时:1:新域 0:旧域 -1:未知域(无法判断新旧域) * 当version参数不为空时,说明要判断是否大于该版本,仅适用于1.1.0及其之后的版本比较: * 2:该域下所有Executor的版本都大于等于指定的版本 * 3:该域下所有Executor的版本都小于指定的版本 * -2:Executor的版本存在大于、等于或小于指定的版本 */ int isNewSaturn(String version); String getAllExecutors(String jobName); String getAllExecutors(String jobName,CuratorRepository.CuratorFrameworkOp curatorFrameworkOp); JobMigrateInfo getAllJobMigrateInfo() throws SaturnJobConsoleException; JobMigrateInfo getJobMigrateInfo(String jobName) throws SaturnJobConsoleException; void migrateJobNewTask(String jobName, String taskNew) throws SaturnJobConsoleException; void batchMigrateJobNewTask(String jobNames, String taskNew) throws SaturnJobConsoleException; Collection<JobBriefInfo> getAllJobsBriefInfo4Tree(); String formatTimeByJobTimeZone(String jobName, Long time); Long calculateJobNextTime(String jobName); Long getNextFireTimeAfterSpecifiedTimeExcludePausePeriod(long nextFireTimeAfterThis, String jobName, CuratorRepository.CuratorFrameworkOp curatorFrameworkOp); List<String> getAllJobs(CuratorRepository.CuratorFrameworkOp curatorFrameworkOp) throws SaturnJobConsoleException; List<String> getAllUnSystemJobs(CuratorRepository.CuratorFrameworkOp curatorFrameworkOp) throws SaturnJobConsoleException; List<JobConfig> getDependentJobsStatus(String jobName) throws SaturnJobConsoleException; List<JobConfig> getDependedJobsStatus(String jobName) throws SaturnJobConsoleException; List<String> getAllJobGroups(); }