|
@@ -11,8 +11,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 钉钉 -> 宜搭 人员档案 定时全量增量同步
|
|
* 钉钉 -> 宜搭 人员档案 定时全量增量同步
|
|
|
- * 工作日 (MON-FRI) 03:00 基线 + 10:05~22:05 每小时一次 fullSync (limit 取配置 personnel-sync.limitFirstN, 生产为 0 即真·全量)
|
|
|
|
|
- * 共 14 次/工作日: 03:00 / 10:05 / 11:05 / ... / 22:05; 周末不跑
|
|
|
|
|
|
|
+ * 工作日 (MON-FRI) 每天 08:00 / 13:00 / 18:00 各一次 fullSync (limit 取配置 personnel-sync.limitFirstN, 生产为 0 即真·全量)
|
|
|
|
|
+ * 共 3 次/工作日; 周末不跑
|
|
|
*/
|
|
*/
|
|
|
@Slf4j
|
|
@Slf4j
|
|
|
@Configuration
|
|
@Configuration
|
|
@@ -25,16 +25,12 @@ public class PersonnelSyncTimer {
|
|
|
// fixme: 防止上一轮未完成时下一轮重入 (两轮并发会使 QPS 翻倍)
|
|
// fixme: 防止上一轮未完成时下一轮重入 (两轮并发会使 QPS 翻倍)
|
|
|
private final AtomicBoolean running = new AtomicBoolean(false);
|
|
private final AtomicBoolean running = new AtomicBoolean(false);
|
|
|
|
|
|
|
|
- /** 工作日凌晨 03:00 全量基线 */
|
|
|
|
|
- @Scheduled(cron = "0 0 3 ? * MON-FRI")
|
|
|
|
|
- public void nightlyFullSync() {
|
|
|
|
|
- runFullSync("03:00");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /** 工作日时段每小时 (10:05 ~ 22:05 含端点, 共 13 次) */
|
|
|
|
|
- @Scheduled(cron = "0 5 10-22 ? * MON-FRI")
|
|
|
|
|
- public void hourlyFullSync() {
|
|
|
|
|
- runFullSync("HH:05");
|
|
|
|
|
|
|
+ /** 工作日 08:00 / 13:00 / 18:00 各一次全量同步(单方法挂 3 条 cron,离散时点无法用单条 cron 表达) */
|
|
|
|
|
+ @Scheduled(cron = "0 0 8 ? * MON-FRI")
|
|
|
|
|
+ @Scheduled(cron = "0 0 13 ? * MON-FRI")
|
|
|
|
|
+ @Scheduled(cron = "0 0 18 ? * MON-FRI")
|
|
|
|
|
+ public void scheduledFullSync() {
|
|
|
|
|
+ runFullSync("08/13/18");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void runFullSync(String tag) {
|
|
private void runFullSync(String tag) {
|