spring不同用户设定的不同时间自动开机调用方式
spring boot calling method automatically at different times set by different users
我在想办法运行一个方法在不同用户设定的特定时间,让我解释一下!
假设我们有 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,但似乎只有在我想在固定时间调用方法时才适用
您可以有一个普通作业,它被安排为每 n 分钟 运行。这个作业可以在那个时间间隔找到任何需要启动的队列然后启动它。
例如此作业每 5 分钟安排一次。
在 9:00 am,findQueuesToLaunch() 方法将找到需要在 9:00am 而不是 运行ning 启动的队列。
@Scheduled(cron = "0 0/5 * * * ?")
public void launchQueue() {
List<String> queues = findQueuesToLaunch();
for (String queueId in queues) {
launchQueue(queueId);
}
}
我在想办法运行一个方法在不同用户设定的特定时间,让我解释一下!
假设我们有 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,但似乎只有在我想在固定时间调用方法时才适用
您可以有一个普通作业,它被安排为每 n 分钟 运行。这个作业可以在那个时间间隔找到任何需要启动的队列然后启动它。
例如此作业每 5 分钟安排一次。
在 9:00 am,findQueuesToLaunch() 方法将找到需要在 9:00am 而不是 运行ning 启动的队列。
@Scheduled(cron = "0 0/5 * * * ?") public void launchQueue() {
List<String> queues = findQueuesToLaunch();
for (String queueId in queues) {
launchQueue(queueId);
}
}