gpt4 book ai didi

java - 在 Spring boot 中执行预定的自定义 sql 查询

转载 作者:行者123 更新时间:2023-11-30 01:49:27 25 4
gpt4 key购买 nike

我需要在预定时间运行自定义查询。例如:用户定义一个自定义查询,在一天中的特定时间在 postgres 数据库上运行。我需要实现一个调度程序,它可以获取存储在数据库中并动态执行的自定义查询和计划时间。

我可以使用 Spring Boot 使用 Cron 调度程序来安排作业,该调度程序将时间和日期定义为注释。但我需要运行多个计划,从数据库获取日期/时间并运行自定义查询。

最佳答案

public class SchedulingConfiguration implements SchedulingConfigurer {
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setThreadNamePrefix("TaskScheduler");
scheduler.setPoolSize(10);
scheduler.setWaitForTasksToCompleteOnShutdown(true);
scheduler.setAwaitTerminationSeconds(20);
return scheduler;
}
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(taskScheduler());
taskRegistrar.addTriggerTask(new Runnable() {
@Override
public void run() {
// Code which which should run at the specified executionTime( specified in nextExecutionTime(TriggerContext triggerContext))
}
}, new Trigger() {
@Override
public Date nextExecutionTime(TriggerContext triggerContext) {
Calendar nextExecutionTime = new GregorianCalendar();
Date lastActualExecutionTime = triggerContext.lastActualExecutionTime();
nextExecutionTime.setTime(lastActualExecutionTime != null ? lastActualExecutionTime : new Date());
nextExecutionTime.add(Calendar.MINUTE, 2); // runs every 2 minute and can also be read from database instead of hardcoding
return nextExecutionTime.getTime();
}
});
}

}

关于java - 在 Spring boot 中执行预定的自定义 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56574971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com