问题标签 [bunny]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - Ruby Bunny - 从多个队列中消费
我刚刚开始使用 Ruby,正在写一篇文章来使用 RabbitMQ 队列中的一些消息。我正在使用兔子这样做。
所以我创建了我的队列并将它们绑定到一个交换。
但是我现在不确定如何处理订阅它们并允许 ruby 应用程序继续运行(希望消息继续通过,即不被阻止或至少不会很长时间),直到我实际使用 ctrl+c 退出它.
但是我尝试过使用:block => true
,因为我订阅了 2 个不同的队列,使用这意味着它仍然只消耗一个。
所以这就是我使用消息的方式:
任何帮助,将不胜感激。
谢谢!
ruby-on-rails - rabbitMQ 和运动鞋的配置问题
我有两个应用程序 sap1 和 sap2,我一直在使用 rabbitMQ(bunny gem)进行消息传递,所以就像从 sap1 开始一样,我将创建消息并发布
sap1(发布者应用)
宝石文件
发布.rb
sap2(消费者应用程序)
宝石文件
配置/初始化程序/sneakers.rb
耙文件
应用程序/工人/mac_worker.rb
并在控制台中听这样做
这是可行的,有时我也会遇到连接问题,在消费者应用程序中我不想使用运动鞋 gem 所以我想用兔子从队列中读取消息并将其放入 sidekiq,以及如何在 sidekiq 中自动收听?
ruby-on-rails - RabbitMQ 中的常见错误
我有两个应用程序S-APP1和S-APP2,刚刚开始使用 rabbitMQ 和客户端 bunny gem,所以当我点击(这可能是一分钟内点击更多)来自S-APP1的按钮时,我会调用publisher.rb将消息发布到队列中并从S-APP2 - consumer.rb中读取并放入 sidekiq 进行处理。
今天我刚刚看到这个链接 https://www.cloudamqp.com/blog/2018-01-19-part4-rabbitmq-13-common-errors.html 并阅读了这篇文章,对来自该链接“重用连接”的这些行有点困惑”和“不要使用太多的连接或通道”,我做对了这件事吗?我正在使用 heroku 来运行它并使用 CloudAMQP 插件。
发布者.rb (S-APP1)
这是我的消费者部分
消费者.rb (S-APP2)
ruby-on-rails - rabbitMQ(bunny gem) + sidekiq 在 heroku 中无法用于 ruby 应用程序
我在这个应用程序中使用过的 Gem
这是从队列中获取消息作为 rake 任务的消费者部分。
档案
我在 heroku 中添加了redistogo插件,并将 REDIS_PROVIDER 配置为 ENV 变量。
这里的问题在本地运行良好,但是在我推送到 heroku 后,我在日志中收到此错误:
我在heroku中做了什么错误的配置吗?我也认为这个 rake 任务并不总是在听。
ruby-on-rails - 如何在 Rails 3.2 中将兔子作业作为后台进程运行
我们有一个 Rails 3.2 应用程序,将使用 Bunny 监听 RabbitMQ 队列。侦听器的代码将如下所示:
我已将上述内容转换为 rake 任务:
它需要一直运行。我怎么称呼这个?可能作为 rake 后台任务?我们使用 nginx / unicorn 作为我们的网络服务器。
rabbitmq - Bunny and RabbitMQ - 调整 WorkQueue 教程以在队列完全工作时取消订阅
我填满了我的队列,检查它有正确数量的任务来工作,然后让工作人员并行设置,prefetch(1)
以确保每个人一次只接受一项任务。
我希望每个工作人员完成其任务,发送手动确认,并在有更多工作时继续工作。
如果没有更多工作,即队列为空,我希望工作脚本完成并且return(0)
.
所以,这就是我现在所拥有的:
当队列为空时,我仍然想确保我完成了。这是来自 RabbitMQ 站点的示例... https://www.rabbitmq.com/tutorials/tutorial-two-ruby.html。它为我们的工作队列提供了许多我们想要的东西,最重要的是手动确认。但它不会停止运行,我需要在队列完成后以编程方式发生:
当队列完全工作(0 总和 0 未确认)时,如何调整此脚本以退出?
ruby - RabbitMQ Bunny 并行消费者
我已经构建了一个应用程序,它由一个发布者、几个队列和每个队列的几个消费者组成。队列(包括队列)上的消费者共享通道。其他队列使用不同的通道。我观察到,对于不同的队列,任务正在并行处理,但对于特定队列,这并没有发生。如果我一次将多条消息发布到特定队列,则只有一个消费者工作,而其他消费者则等到工作结束。我应该怎么做才能让消费者并行工作?
这就是我为特定队列注册所有消费者的方式。该操作perform_work(_,_,_)
相当昂贵,需要几秒钟才能完成。
ruby - Ruby 类设计 - 我应该在单独的文件中创建常量吗?
我是 Ruby 新手,使用 Bunny 来使用来自 RabbitMQ 的消息。
所以我的班级目前看起来大致是这样的:
我的问题是文件变得很长,所以我想以某种方式减少它。所以我想到的一件事是那些将加入队列的长列表移动initialize
到另一个文件中的人,因为它们是恒定的。
但是,正确的方法是什么,我应该创建一个模块,复制所有这些joinQueue
行,然后将它们goWork
作为常量引用,例如:QUEUEMAIN
?
任何想法/建议将不胜感激。
试图理解为此的良好设计?
谢谢。
ruby-on-rails - 使用 JWT 令牌在 Rails 应用程序之间验证用户
我的问题:我正在向仅 Rails 5 api 的应用程序添加一个商店部分,为了降低复杂性,我计划将其添加为单独的宏服务,并在两个应用程序之间共享用户,以验证主要的用户我正在使用 JWT 令牌,我想在两个应用程序中使用相同的令牌。
我不工作的解决方案:使用 rabbitMQ 将令牌从商店发送到主应用程序,并从中取回我需要的所有用户信息。搜索我发现这篇文章和教程:
https://www.rabbitmq.com/tutorials/tutorial-six-ruby.html
从那些我想出这个解决方案的人那里(我知道绝对没有准备好生产,但我正试图在此之前获得一个有效的 MVP):
https://gist.github.com/jabawack81/5cfc0983ebd3166fadcd683f335456f0
问题是:我从商店应用程序控制器的标题中获取令牌,并且我能够将它推送到队列中(使用rabbitMQ GUI检查队列)主应用程序正在接收它,处理它但没有回复背部。
bunny - Having only write rights to queue with Bunny gem
I use the Bunny gem and configured a user in RabbitMQ like this:
The goal is: the user should be able to create a queue named like this: device1.mail and should be able to read / write to it. To all other queues I only want to give the user write access (but not read).
When I try to write to an existing durable queue named calc with Bunny I get an error:
When I set the configure rights to .* for the user, then it works. I'm able to write to the queue, but not read. However like that the user can create queues named like he wants...
So it seems the configure right is needed in order to open the queue (even though it's an existing queue?).
What am I missing here?