Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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
Design patterns Grails中的生产者/消费者?_Design Patterns_Grails_Queue_Producer Consumer - Fatal编程技术网

Design patterns Grails中的生产者/消费者?

Design patterns Grails中的生产者/消费者?,design-patterns,grails,queue,producer-consumer,Design Patterns,Grails,Queue,Producer Consumer,我尝试在Grails中实现一个消费者/生产者应用程序,在实现并发线程的几次尝试失败之后。 基本上,我希望将来自客户端的所有事件(通过单独的AJAX调用)存储在一个队列中,然后在添加新事件后以线性方式处理此类队列 这看起来像是生产者/消费者的问题: 如何在Grails中实现这一点(可以使用计时器,或者通过生成事件“进程队列”更好) 基本上,我希望有一个单例服务等待队列中的新事件并线性处理它们(即使队列由多个并发进程加载) 有什么提示吗 干杯 我建议使用Java消息服务,而不是自己实现它。它正好处

我尝试在Grails中实现一个消费者/生产者应用程序,在实现并发线程的几次尝试失败之后。 基本上,我希望将来自客户端的所有事件(通过单独的AJAX调用)存储在一个队列中,然后在添加新事件后以线性方式处理此类队列

这看起来像是生产者/消费者的问题:

如何在Grails中实现这一点(可以使用计时器,或者通过生成事件“进程队列”更好)

基本上,我希望有一个单例服务等待队列中的新事件并线性处理它们(即使队列由多个并发进程加载)

有什么提示吗


干杯

我建议使用Java消息服务,而不是自己实现它。它正好处理您正在谈论的问题类型。此外,Grails还有一个JMS插件

JMS上的Sun文档:


grailsjms插件:

我最近不得不实现相同类型的系统,并使用for-Grails与消息代理进行接口

我之所以选择RabbitMQ,是因为它具有我所追求的功能(规模、速度、可靠性),并且是基于AMQP标准构建的,这意味着我可以让我的生产者和消费者用我需要的任何语言编写,而不用担心

Grails作为生产者和消费者都能很好地工作,其优点是仍然能够处理应用程序的整个GORM域

为了扩展队列的生产者端或消费者端,我所要做的就是旋转更多的grails实例并调整消费者线程数,这样它就工作得非常好