Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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工具的类似Sidekiq的队列?_Java_Queue_Message Queue_Spring Integration_Sidekiq - Fatal编程技术网

使用java工具的类似Sidekiq的队列?

使用java工具的类似Sidekiq的队列?,java,queue,message-queue,spring-integration,sidekiq,Java,Queue,Message Queue,Spring Integration,Sidekiq,我希望有一个工作队列,其行为几乎与ruby的sidekiq完全相同(它不需要使用Redis,但它可以——我就是不能使用ruby——甚至Jruby也不行)。基本上,我希望能够创建使用一些参数运行的作业,并由工作池执行这些作业。工作人员将使用hibernate做一些工作,因此我认为Spring集成可以使事情变得更简单。Spring集成已经完成 入站消息驱动适配器当前不支持并发;我们使用了一个复合适配器,它包装了一组RedisQueueMessageDrivenEndpoint 或者您可以使用Rabb

我希望有一个工作队列,其行为几乎与ruby的sidekiq完全相同(它不需要使用Redis,但它可以——我就是不能使用ruby——甚至Jruby也不行)。基本上,我希望能够创建使用一些参数运行的作业,并由工作池执行这些作业。工作人员将使用hibernate做一些工作,因此我认为Spring集成可以使事情变得更简单。

Spring集成已经完成

入站消息驱动适配器当前不支持并发;我们使用了一个复合适配器,它包装了一组
RedisQueueMessageDrivenEndpoint

或者您可以使用RabbitMQ;它的Spring集成适配器确实支持并发

编辑


总线已提取到。

Spring Framework具有
ThreadPoolTaskExecutor
。你可以在课堂上使用它,如下所示

@Autowired
ThreadPoolTaskExecutor executor;
ThreadPoolTaskExecutor在投入使用之前需要设置属性。PostConstruct将在依赖注入之后执行,因此我们可以在那里设置ThreadPoolExecutor的属性

@PostConstruct
public void init() {
    executor.setCorePoolSize(5); 
    executor.setMaxPoolSize(10);
    executor.setQueueCapacity(25);
}
然后您可以开始使用executor,如下所示

executor.execute(new EmailtoCustomerTask("zhw@gmail.com"));
成为任务所需的唯一要求是实现可运行接口

private class EmailtoCustomerTask implements Runnable

Sidekiq是一个完整的框架,提供了很多开箱即用的东西,我不认为指向spring集成为自己写东西是一个答案,但这不是一个好的答案。回答:在这种情况下,不应该接受这样的事情。我没有把他引向那个方向。他特别询问了SI
我认为Spring集成可以让事情变得更简单。
阅读标题。
我就是不能使用ruby
。好吧,但它仍然觉得答案是:“我想要一个工作队列,其行为几乎与ruby的sidekiq完全相同”与使用此库自行实现不完全相同。:-)@与SpringXD中的
RedisMessageBus
实现链接的GaryRussell现在已经失效。我很好奇看到这段代码,因为我正在寻找实现一个Java Sidekiq worker,在我们将大多数服务迁移到Java时,它可以与我们的Ruby worker一起工作。我在里面闲逛的时候没看到它,它被弃用了吗?