| package com.xcong.excoin.quartz.job; | 
|   | 
| import com.xcong.excoin.modules.symbols.service.SymbolsService; | 
| import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | 
| import org.springframework.scheduling.annotation.Scheduled; | 
| import org.springframework.stereotype.Component; | 
|   | 
| import javax.annotation.Resource; | 
|   | 
| /** | 
|  * k线数据更新任务 | 
|  * | 
|  * @author wzy | 
|  * @date 2020-05-26 | 
|  **/ | 
| @Component | 
| @ConditionalOnProperty(prefix = "app", name = "kline-update-job", havingValue = "true") | 
| public class KlineDataUpdateJob { | 
|   | 
|     @Resource | 
|     private SymbolsService symbolsService; | 
|   | 
|   | 
|     private static boolean min1 = true; | 
|     private static boolean min5 = true; | 
|     private static boolean min30 = true; | 
|     private static boolean min60 = true; | 
|     private static boolean hour4 = true; | 
|     private static boolean day1 = true; | 
|     private static boolean week = true; | 
|   | 
|   | 
|     /** | 
|      * 定时更新每一分钟的K线数据 | 
|      */ | 
|     @Scheduled(cron = "0/1 * * * * ? ") | 
|     public void updateSymbolsKineOneMin() { | 
|         if (min1) { | 
|             min1 = false; | 
|             try { | 
|                 symbolsService.updateSymbolsKine("1min"); | 
|             } catch (Exception e) { | 
|                 // e.printStackTrace(); | 
|             } finally { | 
|                 min1 = true; | 
|             } | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 定时更新每十分钟的K线数据 | 
|      */ | 
|     @Scheduled(cron = "0/10 * * * * ? ") | 
|     public void updateSymbolsKineFiveMin() { | 
|         if (min5) { | 
|             min5 = false; | 
|             try { | 
|                 symbolsService.updateSymbolsKine("5min"); | 
|             } catch (Exception e) { | 
|                 //e.printStackTrace(); | 
|             } finally { | 
|                 min5 = true; | 
|             } | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 定时更新每30分钟的K线数据 | 
|      */ | 
|     @Scheduled(cron = "0/120 * * * * ? ") | 
|     public void updateSymbolsKineMin() { | 
|         if (min30) { | 
|             min30 = false; | 
|             try { | 
|                 symbolsService.updateSymbolsKine("30min"); | 
|             } catch (Exception e) { | 
|                 //e.printStackTrace(); | 
|             } finally { | 
|                 min30 = true; | 
|             } | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 定时更新1小时的K线数据 | 
|      */ | 
|     @Scheduled(cron = "* 0/2 * * * ? ") | 
|     public void updateSymbolsKineOneHour() { | 
|         if (min60) { | 
|             min60 = false; | 
|             try { | 
|                 symbolsService.updateSymbolsKine("60min"); | 
|             } catch (Exception e) { | 
|                 //e.printStackTrace(); | 
|             } finally { | 
|                 min60 = true; | 
|             } | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 定时更新4小时的K线数据 | 
|      */ | 
|     @Scheduled(cron = "* 0/1 * * * ? ") | 
|     public void updateSymbolsKineFourHour() { | 
|         if (hour4) { | 
|             hour4 = false; | 
|             try { | 
|                 symbolsService.updateSymbolsKine("4hour"); | 
|             } catch (Exception e) { | 
|                 //e.printStackTrace(); | 
|             } finally { | 
|                 hour4 = true; | 
|             } | 
|         } | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 定时更新1天的K线数据 | 
|      */ | 
|     @Scheduled(cron = "* 0/1 * * * ? ") | 
|     public void updateSymbolsKineOneDay() { | 
|         if (day1) { | 
|             day1 = false; | 
|             try { | 
|                 symbolsService.updateSymbolsKine("1day"); | 
|             } catch (Exception e) { | 
|                 //e.printStackTrace(); | 
|             } finally { | 
|                 day1 = true; | 
|             } | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 定时更新1周的K线数据 | 
|      */ | 
|     @Scheduled(cron = "* 0/1 * * * ? ") | 
|     public void updateSymbolsKineOneWeek() { | 
|         if (week) { | 
|             week = false; | 
|             try { | 
|                 symbolsService.updateSymbolsKine("1week"); | 
|             } catch (Exception e) { | 
|                 // e.printStackTrace(); | 
|             } finally { | 
|                 week = true; | 
|             } | 
|         } | 
|     } | 
|   | 
| } |