StopProfitTargetTask.java 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.xc.utils.task.index;
  2. import com.xc.service.IUserPositionService;
  3. import com.xc.utils.DateTimeUtil;
  4. import com.xc.utils.stock.BuyAndSellUtils;
  5. import com.xc.utils.thread.ThreadUtil;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.scheduling.annotation.Scheduled;
  10. import org.springframework.stereotype.Component;
  11. import java.util.Date;
  12. @Component
  13. public class StopProfitTargetTask {
  14. private static final Logger log = LoggerFactory.getLogger(StopProfitTargetTask.class);
  15. // private static final String am_begin = "9:30";
  16. //
  17. // private static final String am_end = "11:30";
  18. //
  19. // private static final String pm_begin = "13:00";
  20. //
  21. // private static final String pm_end = "23:00";
  22. @Autowired
  23. IUserPositionService iUserPositionService;
  24. // 星期一到星期五的每天9点到15点触发 每3分钟触发一次
  25. // @Scheduled(cron = "0 0/3 9-23 ? * MON-FRI")
  26. @Scheduled(cron = "*/3 * * * * ?")
  27. public void toEntrust() {
  28. boolean am = true;
  29. boolean pm = true;
  30. // try {
  31. // // 开市时间要获取DB中的
  32. // am = BuyAndSellUtils.isTransTime(am_begin, am_end);
  33. // pm = BuyAndSellUtils.isTransTime(pm_begin, pm_end);
  34. // } catch (Exception e) {
  35. // log.error("执行定时任务出错,e = {}", e);
  36. // }
  37. if (am || pm) {
  38. log.info("=====定时任务===计算止盈止损=开始,当前时间 {} =====", DateTimeUtil.dateToStr(new Date()));
  39. try {
  40. doTask();
  41. } catch (Exception e) {
  42. log.info("=====定时任务===计算止盈止损==异常" + e);
  43. }
  44. log.info("=====定时任务===计算委托==结束,当前时间 {} =====", DateTimeUtil.dateToStr(new Date()));
  45. } else {
  46. log.info("当前时间不为周一至周五,或者不在交易时间内,不执行(止盈止损)定时任务");
  47. }
  48. }
  49. private void doTask() throws Exception {
  50. ThreadUtil.executeInThread(obj -> {
  51. try {
  52. iUserPositionService.toStopProfitTarget();
  53. } catch (Exception e) {
  54. e.printStackTrace();
  55. }
  56. });
  57. }
  58. }