12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- /*
- * <<
- * Davinci
- * ==
- * Copyright (C) 2016 - 2019 EDP
- * ==
- * 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.
- * >>
- *
- */
- package edp.davinci.service.impl;
- import com.alibaba.fastjson.JSON;
- import edp.core.utils.QuartzHandler;
- import edp.davinci.core.enums.CronJobStatusEnum;
- import edp.davinci.core.enums.LogNameEnum;
- import edp.davinci.core.service.RedisMessageHandler;
- import edp.davinci.dao.CronJobMapper;
- import edp.davinci.model.CronJob;
- import lombok.extern.slf4j.Slf4j;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.io.Serializable;
- import java.util.Date;
- @Slf4j
- @Component
- public class CronJobMessageHandler implements Serializable,RedisMessageHandler {
- private static final Logger scheduleLogger = LoggerFactory.getLogger(LogNameEnum.BUSINESS_SCHEDULE.getName());
- private static final long serialVersionUID = -6164416250269765727L;
- @Autowired
- private CronJobMapper cronJobMapper;
- @Autowired
- private QuartzHandler quartzHandler;
- @Override
- public void handle(Object message, String flag) {
- // the flag is deprecated
- log.info("CronJobHandler received stop message({}), flag:{}", message, flag);
- if (!(message instanceof String)) {
- return;
- }
- CronJob cronJob = JSON.parseObject((String) message, CronJob.class);
- quartzHandler.removeJob(cronJob);
- scheduleLogger.info("CronJob({}) is stopped", cronJob.getId());
- cronJob.setJobStatus(CronJobStatusEnum.STOP.getStatus());
- cronJob.setUpdateTime(new Date());
- cronJobMapper.update(cronJob);
- }
- }
|