我正在嘗試找到一種在不同用戶設定的特定時間運行方法的方法,讓我解釋一下!
假設我們有 2 個站點:siteA 和 siteB,這些站點分別有管理員:adminA 和 adminB。
每個管理員都可以創建一個作業計劃,其中啟動他站點中的 rabbitmq 佇列。
現在,每個管理員手動啟動他的佇列。
我想要的是,例如:
adminA 創建了一個從 08:00 到 18:00
的作業計劃 adminB 創建了一個從 09:00 到 17:30 的作業計劃
我希望啟動站點佇列的方法在該站點管理員指定的時間執行,因此:
queueA1、queueA2、queueA3... 在 08:00 啟動
queueB1、queueB2... 在 09:30 啟動
讓我們假設名為 launchQueues(String siteId) 的方法
我已經了解了@Scheduled,但它似乎只適用于我想在固定時間呼叫方法時
uj5u.com熱心網友回復:
您可以有一個計劃每 n 分鐘運行一次的公共作業。該作業可以找到任何需要在該時間間隔啟動的佇列,然后啟動它。
例如,該作業每 5 分鐘安排一次。
在上午 9:00,findQueuesToLaunch() 方法將找到需要在上午 9:00 啟動但尚未運行的佇列。
@Scheduled(cron = "0 0/5 * * * ?") public void launchQueue() {
List<String> queues = findQueuesToLaunch();
for (String queueId in queues) {
launchQueue(queueId);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/470372.html