| | |
| | | |
| | | |
| | | private final Lock NewsInfoTaskLock = new ReentrantLock(); |
| | | |
| | | private final AtomicBoolean USNewsInfoTask = new AtomicBoolean(false); |
| | | |
| | | |
| | | private final Lock USNewsInfoTaskLock = new ReentrantLock(); |
| | | |
| | | |
| | | /* |
| | | * 新聞資訊抓取 |
| | | * */ |
| | |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * 新聞資訊抓取 |
| | | * */ |
| | | @Scheduled(cron = "0 0/10 * * * ?") |
| | | public void USNewsInfoTask() { |
| | | if (USNewsInfoTask.get()) { // 判断任务是否在处理中 |
| | | return; |
| | | } |
| | | if (USNewsInfoTaskLock.tryLock()) { // 加锁 |
| | | try { |
| | | USNewsInfoTask.set(true); // 设置处理中标识为true |
| | | System.out.println("美国新闻定时任务---->开始"); |
| | | iSiteNewsService.grabNews(); |
| | | } catch (Exception e) { |
| | | System.err.println("美国新闻抓取出现异常: " + e.getMessage()); // 打印具体的异常信息 |
| | | } finally { |
| | | USNewsInfoTaskLock.unlock(); // 释放锁 |
| | | USNewsInfoTask.set(false); // 设置处理中标识为false |
| | | System.out.println("美国新闻定时任务---->结束"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /* |