zainali5120
2020-09-25 286ea89f5f6cade73276f865effa5dcd2b19406d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
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;
            }
        }
    }
 
}