Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法在spring boot中使用参数调度函数_Java_Spring Boot_Scheduled Tasks_Spring Scheduled - Fatal编程技术网

Java 有没有办法在spring boot中使用参数调度函数

Java 有没有办法在spring boot中使用参数调度函数,java,spring-boot,scheduled-tasks,spring-scheduled,Java,Spring Boot,Scheduled Tasks,Spring Scheduled,我需要一个函数,以数据库/模式的名称作为输入,每隔5分钟检查一次数据库是否处于活动状态,然后将其记录到另一个表中。 有点像监视数据库 我有一个函数,比如说repeat function repeat(String database_name) { //check database_name can be connected or not } 当我用@scheduled注释函数repeat时,如何在函数repeat(如果不是参数)内传递值实际上@scheduled接受参数。使用参数fi

我需要一个函数,以数据库/模式的名称作为输入,每隔5分钟检查一次数据库是否处于活动状态,然后将其记录到另一个表中。 有点像监视数据库

我有一个函数,比如说repeat

function repeat(String database_name) {
     //check database_name can be connected or not
}

当我用@scheduled

注释函数repeat时,如何在函数repeat(如果不是参数)内传递值实际上
@scheduled
接受参数。使用参数
fixedRate
指定以毫秒为单位的间隔:

@Scheduled(fixedRate = 300000‬)
public void youFunction() {
}
将每5分钟执行一次

如果需要在运行时通过方法参数指定in interval,请参见此处的我的答案:

您可以使用
TaskScheduler
并通过

taskScheduler.schedule(task1, new PeriodicTrigger(5, TimeUnit.MINUTES));

其中
5
也可以是一个参数。

一个解决方案是创建一个表示参数的对象,在5分钟后执行时,获取该对象并使用内部状态作为参数的表示。您必须确保MyEventService在每5分钟执行一次之前包含对事件的引用。如果没有对原始帖子的更多投入,就不可能知道你是如何/何时这样做的

如果参数从未更改,那么我建议使服务不可变,并删除事件类,只通过使用@Value的属性提供值

类事件{
私有最终字符串myString;
//构造函数,getter
}
@服务
公共类MyEventService{
私人活动;
//构造函数、setter、getter
}
类MyScheduledTask{
@自动连线
私人MyEventService事件服务;
@计划(固定时间=300_000)
public void execute(){
Event=eventService.getEvent();
如果(事件==null){
抛出新的IllegalStateException(“没有要处理的事件”);
}
//过程事件
}
}

您需要澄清“我需要传递参数”的含义。预定的功能就是这样;计划在指定时间段运行,无需任何用户交互。如果您需要为调用传递一个参数,那么它实际上不是一个计划任务。这方面的用例是什么?您希望如何提供参数?在初始解决方案中从何处获取这些参数?它们来自数据库吗?它们是用户输入吗?请澄清是的,参数来自数据库@Lino@Rupeshjuyal然后,您只需在计划的方法中自己获取这些值,我认为OP的意思是传递方法参数,从技术上讲,注释“parameters”被称为,我希望它能为您提供一个解决方案。