package com.vip.saturn.job.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.base.Strings; public class SystemEnvProperties { static Logger log = LoggerFactory.getLogger(SystemEnvProperties.class); private static String NAME_VIP_SATURN_ZK_CONNECTION = "VIP_SATURN_ZK_CONNECTION"; /** * ZK连接串 */ public static String VIP_SATURN_ZK_CONNECTION = trim(System.getProperty(SystemEnvProperties.NAME_VIP_SATURN_ZK_CONNECTION, System.getenv(SystemEnvProperties.NAME_VIP_SATURN_ZK_CONNECTION))); private static String NAME_VIP_SATURN_MAX_NUMBER_OF_JOBS = "VIP_SATURN_MAX_NUMBER_OF_JOBS"; /** * 每个域最大作业数量 */ public static int VIP_SATURN_MAX_NUMBER_OF_JOBS = 500; private static String NAME_VIP_SATURN_EXECUTOR_CLEAN = "VIP_SATURN_EXECUTOR_CLEAN"; /** * Executor离线时,其zk节点信息是否被清理 */ public static boolean VIP_SATURN_EXECUTOR_CLEAN = Boolean.parseBoolean(System.getProperty(NAME_VIP_SATURN_EXECUTOR_CLEAN, System.getenv(NAME_VIP_SATURN_EXECUTOR_CLEAN))); /** * <pre> * shell作业的结果回写的文件全路径(如果需要返回一些执行结果,只需要将结果写入该文件),JSON结构: * { * returnMsg: 返回消息内容 * errorGroup: 200=SUCCESS, 500/550: error * returnCode: 自定义返回码, * prop: {k:v} 属性对 * } * </pre> */ public static String NAME_VIP_SATURN_OUTPUT_PATH = "VIP_SATURN_OUTPUT_PATH"; private static String NAME_VIP_SATURN_DCOS_TASK = "VIP_SATURN_DCOS_TASK"; public static String VIP_SATURN_DCOS_TASK = System.getProperty(NAME_VIP_SATURN_DCOS_TASK, System.getenv(NAME_VIP_SATURN_DCOS_TASK)); /** * Executor优雅退出的全局默认超时时间(单位:精确到秒,默认1分钟) */ public static int VIP_SATURN_SHUTDOWN_TIMEOUT = 60; public static int VIP_SATURN_SHUTDOWN_TIMEOUT_MAX = 5*60 - 10; private static String NAME_VIP_SATURN_SHUTDOWN_TIMEOUT = "VIP_SATURN_SHUTDOWN_TIMEOUT"; static { String maxNumberOfJobs = System.getProperty(NAME_VIP_SATURN_MAX_NUMBER_OF_JOBS, System.getenv(NAME_VIP_SATURN_MAX_NUMBER_OF_JOBS)); if(!Strings.isNullOrEmpty(maxNumberOfJobs)) { try { VIP_SATURN_MAX_NUMBER_OF_JOBS = Integer.valueOf(maxNumberOfJobs); } catch (Throwable t) { log.error("msg=" + t.getMessage(), t); } } String shutdownTimeout = System.getProperty(NAME_VIP_SATURN_SHUTDOWN_TIMEOUT, System.getenv(NAME_VIP_SATURN_SHUTDOWN_TIMEOUT)); if(!Strings.isNullOrEmpty(shutdownTimeout)) { try { VIP_SATURN_SHUTDOWN_TIMEOUT = Integer.valueOf(shutdownTimeout); } catch (Throwable t) { log.error("msg=" + t.getMessage(), t); } } if(VIP_SATURN_SHUTDOWN_TIMEOUT > VIP_SATURN_SHUTDOWN_TIMEOUT_MAX){ VIP_SATURN_SHUTDOWN_TIMEOUT = VIP_SATURN_SHUTDOWN_TIMEOUT_MAX; } } protected static String trim(String property) { if (property != null && property.length()>0) { return property.trim(); } return property; } }