CMoveTask.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package com.zskk.task;
  2. import java.text.SimpleDateFormat;
  3. import java.util.Date;
  4. import java.util.List;
  5. import com.jfinal.plugin.activerecord.Db;
  6. import com.jfinal.plugin.activerecord.Record;
  7. import com.jfinal.plugin.cron4j.ITask;
  8. import com.zskk.service.ServiceFactory;
  9. import com.zskk.service.ThreadPoolService;
  10. import com.zskk.tools.ExecUtil;
  11. public class CMoveTask implements ITask {
  12. @Override
  13. public void run() {
  14. // TODO Auto-generated method stub
  15. List<Record> count = Db.use("local").find("select * from study where status =4");
  16. //同时下载的队列
  17. Integer flag = count.size();
  18. if (flag >= 8) {
  19. return;
  20. }
  21. //延迟10分钟获取影像,并且查找状态为待CMOVE和错误状态的检查
  22. List<Record> studyidfinds = Db.use("local").find("select * from study where status =1 or status =2 and createAt<? order by createAt asc limit 6",parseStringToDate());
  23. if (studyidfinds == null) {
  24. return;
  25. }
  26. for (Record studyidfind : studyidfinds) {
  27. flag++;
  28. if (flag > 10) {
  29. return;
  30. }
  31. //状态4:下载中
  32. studyidfind.set("status", 4);
  33. Db.use("local").update("study", studyidfind);
  34. ThreadPoolService tService = ServiceFactory.getService(ThreadPoolService.class);
  35. tService.execute(() -> {
  36. String execCmd = ExecUtil.execCmd("/zskk_system/other/cmove.sh " + studyidfind.getStr("studyuid"));
  37. if (execCmd.contains("Connection refused")) {
  38. //状态2:错误
  39. studyidfind.set("status", 2);
  40. Db.use("local").update("study", studyidfind);
  41. }else {
  42. //状态2:完成
  43. studyidfind.set("status", 3);
  44. Db.use("local").update("study", studyidfind);
  45. }
  46. });
  47. }
  48. }
  49. @Override
  50. public void stop() {
  51. // TODO Auto-generated method stub
  52. }
  53. /**
  54. * 日期字符串格式转换
  55. *
  56. * @param dateStr
  57. * @return
  58. */
  59. private String parseStringToDate() {
  60. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  61. Date date = new Date();
  62. long dInteger = date.getTime() - 300000;
  63. String daString = sdf.format(new Date(dInteger));
  64. return daString;
  65. }
  66. }