package com.nq.utils.task.news;
|
|
import com.nq.enums.EStockType;
|
import com.nq.pojo.SiteNews;
|
import com.nq.service.ISiteArticleService;
|
import com.nq.service.ISiteNewsService;
|
import com.nq.utils.http.HttpRequest;
|
import net.sf.json.JSONArray;
|
import net.sf.json.JSONObject;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Date;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.ReentrantLock;
|
//import org.springframework.scheduling.annotation.Scheduled;
|
|
|
@Component
|
public class NewsTask {
|
private static final Logger log = LoggerFactory.getLogger(NewsTask.class);
|
|
@Autowired
|
ISiteNewsService iSiteNewsService;
|
|
@Autowired
|
ISiteArticleService iSiteArticleService;
|
|
|
private final AtomicBoolean NewsInfoTask = new AtomicBoolean(false);
|
|
|
private final Lock NewsInfoTaskLock = new ReentrantLock();
|
/*
|
* 新聞資訊抓取
|
* */
|
@Scheduled(cron = "0 0/1 * * * ?")
|
public void NewsInfoTask() {
|
if (NewsInfoTask.get()) { // 判断任务是否在处理中
|
return;
|
}
|
if (NewsInfoTaskLock.tryLock()) { // 加锁
|
try {
|
NewsInfoTask.set(true); // 设置处理中标识为true
|
System.out.println("新闻定时任务---->开始");
|
iSiteNewsService.grabNews();
|
} catch (Exception e) {
|
System.err.println("新闻抓取出现异常: " + e.getMessage()); // 打印具体的异常信息
|
} finally {
|
NewsInfoTaskLock.unlock(); // 释放锁
|
NewsInfoTask.set(false); // 设置处理中标识为false
|
System.out.println("新闻定时任务---->结束");
|
}
|
}
|
}
|
|
|
|
/*
|
* 新聞公告抓取
|
* */
|
// @Scheduled(cron = "0 0/30 9-20 * * ?")
|
// public void ArtInfoTask() {
|
// this.iSiteArticleService.grabArticle();
|
// }
|
}
|