From 79d76579547d7e56feca2e1f5cc40f9ba91a731b Mon Sep 17 00:00:00 2001 From: 王明元 <97082371@qq.com> Date: Thu, 26 May 2022 16:59:42 +0800 Subject: [PATCH] 2022年5月26日16:58:28 修复jpa修改数据问题, 更改定时任务为fixRate方式 --- src/main/java/cn/fw/freya/task/DataCaptureTask.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/main/java/cn/fw/freya/task/DataCaptureTask.java b/src/main/java/cn/fw/freya/task/DataCaptureTask.java index 27febf6..aa49e7c 100644 --- a/src/main/java/cn/fw/freya/task/DataCaptureTask.java +++ b/src/main/java/cn/fw/freya/task/DataCaptureTask.java @@ -9,6 +9,7 @@ import cn.fw.freya.service.crawl.impl.Common; import cn.fw.freya.service.crawl.impl.KuaiShouCrawl; import cn.fw.freya.service.data.AccountService; import cn.fw.freya.utils.DateUtil; +import cn.fw.freya.utils.PublicUtil; import cn.fw.freya.utils.ThreadPoolUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -96,7 +97,7 @@ public class DataCaptureTask { /** * 每2分钟执行抓取数据 */ - @Scheduled(cron = "0 0/2 * * * ?") + @Scheduled(fixedRate = 2 * 60 * 1000, initialDelay = 5000) public void captureLivePlayback() { final Random random = new Random(); List withoutPlaybackLive = common.getWithoutPlaybackLive(1, 60d) @@ -120,21 +121,15 @@ public class DataCaptureTask { for (LivePool item : list) { JSONObject obj = kuaiShouCrawl.setPlaybackUrl(item, playbackMsg); String playbackUrl = obj.getString("playbackUrl"); + final LivePool livePool = PublicUtil.copy(item, LivePool.class);// 对象拷贝 if (Objects.isNull(playbackUrl)) { - livePoolDao.save(LivePool.builder() - .id(item.getId()) - .getPlaybackFailTimes(item.getGetPlaybackFailTimes() + 1) - .build() - ); + livePool.setGetPlaybackFailTimes(livePool.getGetPlaybackFailTimes() + 1); } else { flag = true; - livePoolDao.save(LivePool.builder() - .id(item.getId()) - .roomCoverImage(obj.getString("coverUrl")) - .playbackUrl(playbackUrl) - .build() - ); + livePool.setRoomCoverImage(obj.getString("coverUrl")); + livePool.setPlaybackUrl(playbackUrl); } + livePoolDao.save(livePool); } if (flag) { final ArrayList livePools = new ArrayList<>(); -- libgit2 0.22.2