ScheduleJobUtil.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package jnpf.base.util.job;
  2. import jnpf.base.model.schedule.ScheduleJobModel;
  3. import jnpf.config.ConfigValueUtil;
  4. import jnpf.util.JsonUtil;
  5. import jnpf.util.RedisUtil;
  6. import jnpf.util.StringUtil;
  7. import lombok.extern.slf4j.Slf4j;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.context.annotation.DependsOn;
  10. import org.springframework.stereotype.Component;
  11. import java.util.ArrayList;
  12. import java.util.List;
  13. import java.util.Map;
  14. /**
  15. * 流程设计
  16. *
  17. * @author JNPF开发平台组
  18. * @version V3.3.0 flowable
  19. * @copyright 引迈信息技术有限公司
  20. * @date 2022/6/15 17:37
  21. */
  22. @Component
  23. @Slf4j
  24. @DependsOn("threadPoolTaskExecutor")
  25. public class ScheduleJobUtil {
  26. /**
  27. * 缓存key
  28. */
  29. public static final String WORKTIMEOUT_REDIS_KEY = "idgenerator_Schedule";
  30. @Autowired
  31. private RedisUtil redisUtil;
  32. @Autowired
  33. private ConfigValueUtil configValueUtil;
  34. /**
  35. * 将数据放入缓存
  36. *
  37. * @param
  38. * @return
  39. * @copyright 引迈信息技术有限公司
  40. * @date 2022/6/2
  41. */
  42. public void insertRedis(List<ScheduleJobModel> scheduleJobList, RedisUtil redisUtil) {
  43. for (ScheduleJobModel jobModel : scheduleJobList) {
  44. String id = jobModel.getId();
  45. String objectToString = JsonUtil.getObjectToString(jobModel);
  46. redisUtil.insertHash(WORKTIMEOUT_REDIS_KEY, id, objectToString);
  47. }
  48. }
  49. /**
  50. * 定时器取用数据调用创建方法
  51. *
  52. * @param
  53. * @return
  54. * @copyright 引迈信息技术有限公司
  55. * @date 2022/6/2
  56. */
  57. public List<ScheduleJobModel> getListRedis(RedisUtil redisUtil) {
  58. List<ScheduleJobModel> scheduleJobList = new ArrayList<>();
  59. if (redisUtil.exists(WORKTIMEOUT_REDIS_KEY)) {
  60. Map<String, Object> map = redisUtil.getMap(WORKTIMEOUT_REDIS_KEY);
  61. for (String object : map.keySet()) {
  62. if (map.get(object) instanceof String) {
  63. ScheduleJobModel scheduleJobModel = JsonUtil.getJsonToBean(String.valueOf(map.get(object)), ScheduleJobModel.class);
  64. if(StringUtil.isNotEmpty(scheduleJobModel.getId())) {
  65. scheduleJobList.add(scheduleJobModel);
  66. }else {
  67. redisUtil.removeHash(WORKTIMEOUT_REDIS_KEY,object);
  68. }
  69. }else {
  70. redisUtil.removeHash(WORKTIMEOUT_REDIS_KEY,object);
  71. }
  72. }
  73. }
  74. return scheduleJobList;
  75. }
  76. }