class InspectorJob extends CacheBaseJob {
    private static final long serialVersionUID = -4277329946053271489L;

    @Override
    public void action(JobExecutionContext context) {<FILL_FUNCTION_BODY>}
}

        try {
            long start = System.currentTimeMillis();
            SchedulerContext schedulerContext = context.getScheduler().getContext();
            ApplicationContext applicationContext = (ApplicationContext) schedulerContext.get(APPLICATION_CONTEXT_KEY);

            Environment env = applicationContext.getBean(Environment.class);
            if (EnvUtil.isDev(env)) {
                logger.warn("environment is dev ignored");
                return;
            }
            // 应用相关
            InspectHandler inspectHandler;
            JobDataMap jobDataMap = context.getMergedJobDataMap();
            String inspectorType = MapUtils.getString(jobDataMap, "inspectorType");
            if (StringUtils.isBlank(inspectorType)) {
                logger.error("=====================InspectorJob:inspectorType is null=====================");
                return;
            } else if (inspectorType.equals("host")) {
                inspectHandler = applicationContext.getBean("hostInspectHandler", InspectHandler.class);
            } else if (inspectorType.equals("app")) {
                inspectHandler = applicationContext.getBean("appInspectHandler", InspectHandler.class);
            } else {
                logger.error("=====================InspectorJob:inspectorType not match:{}=====================", inspectorType);
                return;
            }
            inspectHandler.handle();
            long end = System.currentTimeMillis();
            logger.info("=====================InspectorJob {} Done! cost={} ms=====================",
                    inspectHandler.getClass().getSimpleName(), (end - start));
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            throw new RuntimeException(e);
        }
    
<methods>public non-sealed void <init>() ,public abstract void action(JobExecutionContext) ,public void execute(JobExecutionContext) throws JobExecutionException<variables>protected static final java.lang.String APPLICATION_CONTEXT_KEY,protected org.slf4j.Logger logger,private static final long serialVersionUID