Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
使用jms的Spring调度任务_Spring_Spring Boot_Spring Jms - Fatal编程技术网

使用jms的Spring调度任务

使用jms的Spring调度任务,spring,spring-boot,spring-jms,Spring,Spring Boot,Spring Jms,我刚开始使用Spring(特别是Spring Boot),我想创建一个长时间运行的程序,该程序可以处理预定的任务(即@scheduled),例如在晚上7点到11点之间开始处理。我对这一点没意见 该任务将从ActiveMQ队列中获取一条消息并对其进行处理,稍微休眠,然后获取另一条消息并重复 作为JMS/ActiveMQ的新手,是否可以将Spring@JmsListener与调度器结合使用来实现这一点,如果可以,如何实现 如果不是,我认为我的计划任务应该简单地使用对队列的点对点访问来获取消息。如果是

我刚开始使用Spring(特别是Spring Boot),我想创建一个长时间运行的程序,该程序可以处理预定的任务(即@scheduled),例如在晚上7点到11点之间开始处理。我对这一点没意见

该任务将从ActiveMQ队列中获取一条消息并对其进行处理,稍微休眠,然后获取另一条消息并重复

作为JMS/ActiveMQ的新手,是否可以将Spring@JmsListener与调度器结合使用来实现这一点,如果可以,如何实现

如果不是,我认为我的计划任务应该简单地使用对队列的点对点访问来获取消息。如果是这样的话,有没有人有一个简单的例子,因为我更喜欢使用SpringBoot,但找不到任何好的例子,他们似乎都使用侦听器


谢谢。

嗯。不要。。。创建一个Spring批处理作业(仍然使用Spring引导),只需创建一个cron时间表,在晚上7点左右启动应用程序,让作业处理队列中的内容。另外,使用Spring Boot与是否使用
@JmsListener
无关。看起来你把事情搞糊涂了。@M.Deinum我想说在这里使用JMS很好。你可以监听队列并运行作业。Cron调度程序可以将事件放入队列中。它更灵活,你可以安排spring批处理,甚至可以手动启动。这取决于你真正想要的复杂性和权衡。仅仅使用JMSTemplate并调用receive()可能是一个起点?@StanislavL我应该在哪里声明他不应该使用JMS?SpringBatch完全能够从JMS中读取数据。您可以编写一个批处理作业,在计划的时间启动它(这是我响应的),并使用
JmsItemReader
创建一个批处理作业,该批处理作业包装
JmsTemplate
,以从目的地读取消息。@M.Deinum spring batch假定了一些步骤-读取器、处理器、写入器。可能是额外的抽象级别(不确定是否有必要)