|
@@ -89,14 +89,23 @@ public class Task {
|
|
|
@Value("${saas.task.enabled}")
|
|
@Value("${saas.task.enabled}")
|
|
|
private boolean saasTaskEnabled;
|
|
private boolean saasTaskEnabled;
|
|
|
|
|
|
|
|
- @Scheduled(cron = "0 0/1 * * * ?")
|
|
|
|
|
- @DistributeLock(key = "updateLiveStatusByTime", scene = "task")
|
|
|
|
|
- public void updateLiveStatusByTime() {
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * SaaS 多租户定时任务执行模板方法。
|
|
|
|
|
+ * 如果启用了 SaaS 且非租户执行上下文中,则按租户逐个执行;
|
|
|
|
|
+ * 否则直接执行(兼容单库模式或被 TenantTaskRunner 调用时)。
|
|
|
|
|
+ */
|
|
|
|
|
+ private void runWithSaaSTenant(String taskName, Runnable action) {
|
|
|
if (saasTaskEnabled && !TenantTaskRunner.isInTenantExecution()) {
|
|
if (saasTaskEnabled && !TenantTaskRunner.isInTenantExecution()) {
|
|
|
- tenantTaskRunner.runForEachTenant("updateLiveStatusByTime", this::doUpdateLiveStatusByTime);
|
|
|
|
|
|
|
+ tenantTaskRunner.runForEachTenant(taskName, action);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- doUpdateLiveStatusByTime();
|
|
|
|
|
|
|
+ action.run();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Scheduled(cron = "0 0/1 * * * ?")
|
|
|
|
|
+ @DistributeLock(key = "updateLiveStatusByTime", scene = "task")
|
|
|
|
|
+ public void updateLiveStatusByTime() {
|
|
|
|
|
+ runWithSaaSTenant("updateLiveStatusByTime", this::doUpdateLiveStatusByTime);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void doUpdateLiveStatusByTime() {
|
|
private void doUpdateLiveStatusByTime() {
|
|
@@ -256,11 +265,7 @@ public class Task {
|
|
|
@Scheduled(cron = "0/1 * * * * ?")
|
|
@Scheduled(cron = "0/1 * * * * ?")
|
|
|
@DistributeLock(key = "liveLotteryTask", scene = "task")
|
|
@DistributeLock(key = "liveLotteryTask", scene = "task")
|
|
|
public void liveLotteryTask() {
|
|
public void liveLotteryTask() {
|
|
|
- if (saasTaskEnabled && !TenantTaskRunner.isInTenantExecution()) {
|
|
|
|
|
- tenantTaskRunner.runForEachTenant("liveLotteryTask", this::doLiveLotteryTask);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- doLiveLotteryTask();
|
|
|
|
|
|
|
+ runWithSaaSTenant("liveLotteryTask", this::doLiveLotteryTask);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void doLiveLotteryTask() {
|
|
private void doLiveLotteryTask() {
|
|
@@ -394,11 +399,7 @@ public class Task {
|
|
|
@Scheduled(cron = "0/1 * * * * ?")
|
|
@Scheduled(cron = "0/1 * * * * ?")
|
|
|
@DistributeLock(key = "liveAutoTask", scene = "task")
|
|
@DistributeLock(key = "liveAutoTask", scene = "task")
|
|
|
public void liveAutoTask() {
|
|
public void liveAutoTask() {
|
|
|
- if (saasTaskEnabled && !TenantTaskRunner.isInTenantExecution()) {
|
|
|
|
|
- tenantTaskRunner.runForEachTenant("liveAutoTask", this::doLiveAutoTask);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- doLiveAutoTask();
|
|
|
|
|
|
|
+ runWithSaaSTenant("liveAutoTask", this::doLiveAutoTask);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void doLiveAutoTask() {
|
|
private void doLiveAutoTask() {
|
|
@@ -435,11 +436,7 @@ public class Task {
|
|
|
@DistributeLock(key = "autoUpdateWatchReward", scene = "task")
|
|
@DistributeLock(key = "autoUpdateWatchReward", scene = "task")
|
|
|
@Transactional
|
|
@Transactional
|
|
|
public void autoUpdateWatchReward() {
|
|
public void autoUpdateWatchReward() {
|
|
|
- if (saasTaskEnabled && !TenantTaskRunner.isInTenantExecution()) {
|
|
|
|
|
- tenantTaskRunner.runForEachTenant("autoUpdateWatchReward", this::doAutoUpdateWatchReward);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- doAutoUpdateWatchReward();
|
|
|
|
|
|
|
+ runWithSaaSTenant("autoUpdateWatchReward", this::doAutoUpdateWatchReward);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void doAutoUpdateWatchReward() {
|
|
private void doAutoUpdateWatchReward() {
|
|
@@ -548,11 +545,7 @@ public class Task {
|
|
|
*/
|
|
*/
|
|
|
@Scheduled(cron = "0 0/1 * * * ?")// 每分钟执行一次
|
|
@Scheduled(cron = "0 0/1 * * * ?")// 每分钟执行一次
|
|
|
public void syncLiveDataToDB() {
|
|
public void syncLiveDataToDB() {
|
|
|
- if (saasTaskEnabled && !TenantTaskRunner.isInTenantExecution()) {
|
|
|
|
|
- tenantTaskRunner.runForEachTenant("syncLiveDataToDB", this::doSyncLiveDataToDB);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- doSyncLiveDataToDB();
|
|
|
|
|
|
|
+ runWithSaaSTenant("syncLiveDataToDB", this::doSyncLiveDataToDB);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void doSyncLiveDataToDB() {
|
|
private void doSyncLiveDataToDB() {
|
|
@@ -677,11 +670,7 @@ public class Task {
|
|
|
@Scheduled(cron = "0/5 * * * * ?")
|
|
@Scheduled(cron = "0/5 * * * * ?")
|
|
|
@DistributeLock(key = "updateRedQuantityNum", scene = "task")
|
|
@DistributeLock(key = "updateRedQuantityNum", scene = "task")
|
|
|
public void updateRedQuantityNum() {
|
|
public void updateRedQuantityNum() {
|
|
|
- if (saasTaskEnabled && !TenantTaskRunner.isInTenantExecution()) {
|
|
|
|
|
- tenantTaskRunner.runForEachTenant("updateRedQuantityNum", this::doUpdateRedQuantityNum);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- doUpdateRedQuantityNum();
|
|
|
|
|
|
|
+ runWithSaaSTenant("updateRedQuantityNum", this::doUpdateRedQuantityNum);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void doUpdateRedQuantityNum() {
|
|
private void doUpdateRedQuantityNum() {
|
|
@@ -695,11 +684,7 @@ public class Task {
|
|
|
@Scheduled(cron = "0/10 * * * * ?")
|
|
@Scheduled(cron = "0/10 * * * * ?")
|
|
|
@DistributeLock(key = "scanLiveTagMark", scene = "task")
|
|
@DistributeLock(key = "scanLiveTagMark", scene = "task")
|
|
|
public void scanLiveTagMark() {
|
|
public void scanLiveTagMark() {
|
|
|
- if (saasTaskEnabled && !TenantTaskRunner.isInTenantExecution()) {
|
|
|
|
|
- tenantTaskRunner.runForEachTenant("scanLiveTagMark", this::doScanLiveTagMark);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- doScanLiveTagMark();
|
|
|
|
|
|
|
+ runWithSaaSTenant("scanLiveTagMark", this::doScanLiveTagMark);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void doScanLiveTagMark() {
|
|
private void doScanLiveTagMark() {
|
|
@@ -875,11 +860,7 @@ public class Task {
|
|
|
@Scheduled(cron = "0/30 * * * * ?")
|
|
@Scheduled(cron = "0/30 * * * * ?")
|
|
|
@DistributeLock(key = "scanLiveWatchUserStatus", scene = "task")
|
|
@DistributeLock(key = "scanLiveWatchUserStatus", scene = "task")
|
|
|
public void scanLiveWatchUserStatus() {
|
|
public void scanLiveWatchUserStatus() {
|
|
|
- if (saasTaskEnabled && !TenantTaskRunner.isInTenantExecution()) {
|
|
|
|
|
- tenantTaskRunner.runForEachTenant("scanLiveWatchUserStatus", this::doScanLiveWatchUserStatus);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- doScanLiveWatchUserStatus();
|
|
|
|
|
|
|
+ runWithSaaSTenant("scanLiveWatchUserStatus", this::doScanLiveWatchUserStatus);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void doScanLiveWatchUserStatus() {
|
|
private void doScanLiveWatchUserStatus() {
|
|
@@ -1058,11 +1039,7 @@ public class Task {
|
|
|
@Scheduled(cron = "0 0/1 * * * ?")
|
|
@Scheduled(cron = "0 0/1 * * * ?")
|
|
|
@DistributeLock(key = "updateLiveWatchUserStatus", scene = "task")
|
|
@DistributeLock(key = "updateLiveWatchUserStatus", scene = "task")
|
|
|
public void updateLiveWatchUserStatus() {
|
|
public void updateLiveWatchUserStatus() {
|
|
|
- if (saasTaskEnabled && !TenantTaskRunner.isInTenantExecution()) {
|
|
|
|
|
- tenantTaskRunner.runForEachTenant("updateLiveWatchUserStatus", this::doUpdateLiveWatchUserStatus);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- doUpdateLiveWatchUserStatus();
|
|
|
|
|
|
|
+ runWithSaaSTenant("updateLiveWatchUserStatus", this::doUpdateLiveWatchUserStatus);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void doUpdateLiveWatchUserStatus() {
|
|
private void doUpdateLiveWatchUserStatus() {
|