package jnpf.base.util.job; import jnpf.base.model.schedule.ScheduleJobModel; import jnpf.config.ConfigValueUtil; import jnpf.util.JsonUtil; import jnpf.util.RedisUtil; import jnpf.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.DependsOn; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 流程设计 * * @author JNPF开发平台组 * @version V3.3.0 flowable * @copyright 引迈信息技术有限公司 * @date 2022/6/15 17:37 */ @Component @Slf4j @DependsOn("threadPoolTaskExecutor") public class ScheduleJobUtil { /** * 缓存key */ public static final String WORKTIMEOUT_REDIS_KEY = "idgenerator_Schedule"; @Autowired private RedisUtil redisUtil; @Autowired private ConfigValueUtil configValueUtil; /** * 将数据放入缓存 * * @param * @return * @copyright 引迈信息技术有限公司 * @date 2022/6/2 */ public void insertRedis(List scheduleJobList, RedisUtil redisUtil) { for (ScheduleJobModel jobModel : scheduleJobList) { String id = jobModel.getId(); String objectToString = JsonUtil.getObjectToString(jobModel); redisUtil.insertHash(WORKTIMEOUT_REDIS_KEY, id, objectToString); } } /** * 定时器取用数据调用创建方法 * * @param * @return * @copyright 引迈信息技术有限公司 * @date 2022/6/2 */ public List getListRedis(RedisUtil redisUtil) { List scheduleJobList = new ArrayList<>(); if (redisUtil.exists(WORKTIMEOUT_REDIS_KEY)) { Map map = redisUtil.getMap(WORKTIMEOUT_REDIS_KEY); for (String object : map.keySet()) { if (map.get(object) instanceof String) { ScheduleJobModel scheduleJobModel = JsonUtil.getJsonToBean(String.valueOf(map.get(object)), ScheduleJobModel.class); if(StringUtil.isNotEmpty(scheduleJobModel.getId())) { scheduleJobList.add(scheduleJobModel); }else { redisUtil.removeHash(WORKTIMEOUT_REDIS_KEY,object); } }else { redisUtil.removeHash(WORKTIMEOUT_REDIS_KEY,object); } } } return scheduleJobList; } }