Sfoglia il codice sorgente

[打标签][优化]:不能并发执行打标签操作

release_toaliyun_real
Stormeye Wu 6 anni fa
parent
commit
2a10906a80
2 ha cambiato i file con 52 aggiunte e 1 eliminazioni
  1. +50
    -0
      mallinkSchedule/src/main/java/com/iformall/controller/UserTagsController.java
  2. +2
    -1
      mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java

+ 50
- 0
mallinkSchedule/src/main/java/com/iformall/controller/UserTagsController.java Vedi File

@@ -0,0 +1,50 @@
package com.iformall.controller;

import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxCUserBasicInfo;
import com.iformall.domain.po.msg.WxMsgRecord;
import com.iformall.enums.EnumAssignTagsTrigger;
import com.iformall.mq.MqBaseProducer;
import com.iformall.mq.impl.RabbitMqMessageProducer;
import com.iformall.service.WxCUserBasicInfoService;
import com.iformall.service.WxCUserTagsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
@Api(description = "登录相关接口")
public class UserTagsController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
WxCUserTagsService wxCUserTagsService;

@Autowired
WxCUserBasicInfoService wxCUserBasicInfoService;

@GetMapping("/userTag")
public void mqtest() {
WxCUserBasicInfo wxCUserBasicInfo = new WxCUserBasicInfo();

int pageIndex = 1;
final int pageSize = 1000;

PageInfo page;
do{
page = wxCUserBasicInfoService.listAsPage(wxCUserBasicInfo, pageIndex++, pageSize);
page.getList().stream().forEach(cubi -> {
long lStart = System.currentTimeMillis();
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_SCAN, cubi);
logger.info("user tag cost time: {}", System.currentTimeMillis() - lStart);
});
} while ((page.isHasNextPage()));
}
}

+ 2
- 1
mallinkSchedule/src/main/java/com/iformall/schedule/WxCUserTagsSchedule.java Vedi File

@@ -22,7 +22,8 @@ public class WxCUserTagsSchedule {
@Autowired
WxCUserBasicInfoService wxCUserBasicInfoService;

@Scheduled(cron = "0 0 0 25 * ?") // 每月25日凌晨01:00对会员列表扫描补录标签
// TODO 先不执行打标签操作了, 数据量太大,导致数据库CPU 100%
//@Scheduled(cron = "0 0 0 25 * ?") // 每月25日凌晨01:00对会员列表扫描补录标签
//@Scheduled(cron = "0 */5 * * * ?") // 测试1分钟一次
public void wxCUserTagsSchedule() {
WxCUserBasicInfo wxCUserBasicInfo = new WxCUserBasicInfo();


Caricamento…
Annulla
Salva