package com.imutil.task; import com.imutil.entity.Tenant; import com.imutil.mapper.TenantMapper; import com.imutil.service.SyncService; import lombok.extern.slf4j.Slf4j; import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; import org.noear.solon.scheduling.annotation.Scheduled; import java.util.List; /** * 数据同步补拉对账定时任务 *
* 定期重跑群消息 + 单聊同步(幂等,本地已有的跳过、缺失的补入), * 兜底腾讯侧有而本系统暂无的消息,确保本系统数据最全、业务系统不漏收。 * 对应 app.yml 的 solon.scheduling.job.syncCheckJob。 *
* 遍历所有租户,对每个用主应用密钥执行 checkAndPull(主应用数据为主)。
*
* @author imutil
*/
@Slf4j
@Component
public class SyncCheckTask {
@Inject
private SyncService syncService;
@Inject
private TenantMapper tenantMapper;
/**
* 由 app.yml syncCheckJob 驱动(默认 fixedDelay=1 小时)
*/
@Scheduled(name = "syncCheckJob")
public void run() {
List