ScheduleJob.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package com.fdkankan.scene.schedule;
  2. import com.alibaba.fastjson.JSON;
  3. import com.fdkankan.redis.constant.RedisKey;
  4. import com.fdkankan.redis.util.RedisLockUtil;
  5. import com.fdkankan.redis.util.RedisUtil;
  6. import com.fdkankan.scene.entity.DownloadTourVideo;
  7. import com.fdkankan.scene.service.IDownloadTourVideoService;
  8. import com.fdkankan.scene.service.ISceneAsynOperLogService;
  9. import com.fdkankan.scene.service.ISceneDownLoadService;
  10. import lombok.extern.log4j.Log4j2;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.scheduling.annotation.Scheduled;
  13. import org.springframework.stereotype.Component;
  14. import java.nio.charset.StandardCharsets;
  15. @Log4j2
  16. @Component
  17. public class ScheduleJob {
  18. @Autowired
  19. private ISceneAsynOperLogService sceneAsynOperLogService;
  20. @Autowired
  21. RedisUtil redisUtil;
  22. @Autowired
  23. ISceneDownLoadService sceneDownLoadService;
  24. @Autowired
  25. private RedisLockUtil redisLockUtil;
  26. @Autowired
  27. private IDownloadTourVideoService downloadTourVideoService;
  28. /**
  29. * 每天凌晨一点执行
  30. */
  31. @Scheduled(cron="0 0 1 * * ?")
  32. public void cleanDownloadPanorama() {
  33. log.info("定时清除全景图压缩包开始");
  34. sceneAsynOperLogService.cleanDownloadPanorama();
  35. log.info("定时清除全景图压缩包完毕");
  36. }
  37. @Scheduled(cron = "0/5 * * * * ? ")
  38. public void job4SceneDownload() throws Exception {
  39. sceneDownLoadService.process();
  40. }
  41. @Scheduled(cron = "0/5 * * * * ? ")
  42. public void job4SceneV3Download() throws Exception {
  43. sceneDownLoadService.processV3();
  44. }
  45. @Scheduled(cron = "0/2 * * * * ? ")
  46. public void transferTourVideo() throws Exception {
  47. String lockKey = "lock:transfer:tour:video";
  48. boolean lock = redisLockUtil.lock("lock:transfer:tour:video", RedisKey.EXPIRE_TIME_10_MINUTE);
  49. if(!lock){
  50. return;
  51. }
  52. String task = (String) redisUtil.lGetIndex("transfer:tour:video", 0L);
  53. try {
  54. log.info("开始导览视频转换,content:{}", task);
  55. DownloadTourVideo downloadTourVideo = JSON.parseObject(task, DownloadTourVideo.class);
  56. downloadTourVideoService.transferTourVideo(downloadTourVideo);
  57. //视频转换完毕后才出队,防止服务重启,可以重新开始任务
  58. redisUtil.lLeftPop("transfer:tour:video");
  59. log.info("结束导览视频,content:{}", task);
  60. }catch (Exception e){
  61. log.error("导览视频转换失败,转换任务:{}", task, e);
  62. }finally {
  63. redisLockUtil.unlockLua(lockKey);
  64. }
  65. }
  66. // /**
  67. // * 删除场景原始资源
  68. // * 每天凌晨执行
  69. // */
  70. // @Scheduled(cron="0 0 1 * * ?")
  71. // public void cleanOssHomeV3() {
  72. // log.info("删除v3场景原始资源开始");
  73. // String lockKey = RedisLockKey.LOCK_CLEAN_SCENE_ORIG_V3;
  74. // try {
  75. // boolean lock = redisLockUtil.lock(lockKey, RedisKey.CAMERA_EXPIRE_7_TIME);
  76. // if(!lock){
  77. // return;
  78. // }
  79. // sceneCleanOrigService.cleanOrigV3();
  80. // }finally {
  81. // redisLockUtil.unlockLua(lockKey);
  82. // }
  83. // log.info("删除v3场景原始资源结束");
  84. // }
  85. //
  86. // /**
  87. // * 删除场景原始资源
  88. // * 每天凌晨执行
  89. // */
  90. // @Scheduled(cron="0 0 1 * * ?")
  91. // public void cleanOssHomeV4() {
  92. // log.info("删除v4场景原始资源开始");
  93. // String lockKey = RedisLockKey.LOCK_CLEAN_SCENE_ORIG_V4;
  94. // try {
  95. // boolean lock = redisLockUtil.lock(lockKey, RedisKey.CAMERA_EXPIRE_7_TIME);
  96. // if(!lock){
  97. // return;
  98. // }
  99. // sceneCleanOrigService.cleanOrigV4();
  100. // }finally {
  101. // redisLockUtil.unlockLua(lockKey);
  102. // }
  103. // log.info("删除v4场景原始资源结束");
  104. // }
  105. }