|
@@ -118,6 +118,7 @@ public class ProductHuntTask extends AbstractDataTask {
|
|
|
public boolean fetchData() {
|
|
public boolean fetchData() {
|
|
|
// 目标是拉取昨天的数据,且中国时区比ProductHunt的服务器快了8个小时,因此如果在8点前运行,则会获取同一天的数据
|
|
// 目标是拉取昨天的数据,且中国时区比ProductHunt的服务器快了8个小时,因此如果在8点前运行,则会获取同一天的数据
|
|
|
LocalDateTime yesterdayLocalDateTime = LocalDateTime.now().minusDays(1);
|
|
LocalDateTime yesterdayLocalDateTime = LocalDateTime.now().minusDays(1);
|
|
|
|
|
+ Date rankDate = Date.from(yesterdayLocalDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
|
|
String rankDateStr = DateUtils.YYYY_MM_DD_FORMATTER.format(yesterdayLocalDateTime);
|
|
String rankDateStr = DateUtils.YYYY_MM_DD_FORMATTER.format(yesterdayLocalDateTime);
|
|
|
// 拉取数据
|
|
// 拉取数据
|
|
|
JsonResponse<List<PostNode>> jsonResponse = productHuntFeign.getPosts(apiToken, rankDateStr);
|
|
JsonResponse<List<PostNode>> jsonResponse = productHuntFeign.getPosts(apiToken, rankDateStr);
|
|
@@ -136,6 +137,9 @@ public class ProductHuntTask extends AbstractDataTask {
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 删除历史数据数据,以防重复执行导致数据重复引发系统异常
|
|
|
|
|
+ productHuntPostService.deleteByRankDate(rankDateStr);
|
|
|
|
|
+
|
|
|
// 内容太长,要分批次翻译
|
|
// 内容太长,要分批次翻译
|
|
|
List<List<PostNode>> partition = Lists.partition(postNodes, Optional.ofNullable(productHuntProperties.getTranslateNum()).orElse(10));
|
|
List<List<PostNode>> partition = Lists.partition(postNodes, Optional.ofNullable(productHuntProperties.getTranslateNum()).orElse(10));
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
@@ -185,7 +189,6 @@ public class ProductHuntTask extends AbstractDataTask {
|
|
|
Map<Long, ProductHuntTranslateDto> productHuntTranslateDtoMap = synchronizedList.stream().collect(Collectors.toMap(ProductHuntTranslateDto::getId, Function.identity(), (v1, v2) -> v1));
|
|
Map<Long, ProductHuntTranslateDto> productHuntTranslateDtoMap = synchronizedList.stream().collect(Collectors.toMap(ProductHuntTranslateDto::getId, Function.identity(), (v1, v2) -> v1));
|
|
|
|
|
|
|
|
AtomicInteger rankNum = new AtomicInteger(1);
|
|
AtomicInteger rankNum = new AtomicInteger(1);
|
|
|
- Date rankDate = Date.from(yesterdayLocalDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
|
|
|
|
List<DataProductHuntPost> posts = postNodes.stream().map(v -> {
|
|
List<DataProductHuntPost> posts = postNodes.stream().map(v -> {
|
|
|
DataProductHuntPost post = new DataProductHuntPost();
|
|
DataProductHuntPost post = new DataProductHuntPost();
|
|
|
BeanUtils.copyProperties(v, post);
|
|
BeanUtils.copyProperties(v, post);
|