| | |
| | | |
| | | private final Lock syncINStockDataLock = new ReentrantLock(); |
| | | |
| | | private final AtomicBoolean syncUSStockData = new AtomicBoolean(false); |
| | | |
| | | private final Lock syncUSStockDataLock = new ReentrantLock(); |
| | | |
| | | /** |
| | | * 同步系统所需要的股票 |
| | | */ |
| | | @Scheduled(cron = "0 */1 * * * ?") |
| | | @Scheduled(cron = "0 0/1 * * * ?") |
| | | public void syncINStockData() { |
| | | if (syncINStockData.get()) { // 判断任务是否在处理中 |
| | | return; |
| | |
| | | /** |
| | | * 同步美国股票 |
| | | */ |
| | | // @Scheduled(cron = "0 0/30 * * * ?") |
| | | @Scheduled(cron = "0 0/1 * * * ?") |
| | | public void loadStockCompanies() { |
| | | loadAllCompanies(); |
| | | if (syncUSStockData.get()) { // 判断任务是否在处理中 |
| | | return; |
| | | } |
| | | if (syncUSStockDataLock.tryLock()) { |
| | | try { |
| | | syncUSStockData.set(true); // 设置处理中标识为true |
| | | loadAllStock(EStockType.US); |
| | | } finally { |
| | | syncUSStockDataLock.unlock(); |
| | | syncUSStockData.set(false); // 设置处理中标识为false |
| | | } |
| | | } |
| | | } |
| | | |
| | | |