rabbitmq相关内容

如何在启动时在 RabbitMQ 中创建队列

我正在尝试使用预先创建的队列 qwer 在 docker 容器中启动 RMQ. 在此之前,我使用的是简单的 docker-compose.yml 文件: 兔子:图片:rabbitmq:管理高山环境:RABBITMQ_DEFAULT_USER:来宾RABBITMQ_DEFAULT_PASS:来宾 它工作得很好,只是它在开始时没有预先创建队列.现在我已经切换到自定义图像,使用以下 Docke ..
发布时间:2022-01-11 17:47:59 其他开发

如何使用 Web 插件将 JSON 有效负载发送到 RabbitMQ?

我有一个安装了 Web 管理插件的 RabbitMQ 3.4.2 实例. 当我使用 Python 的 kombu 队列包,消息在另一端作为字典读取. 但是,当我使用 Web 控制台发送消息时: 我在接收端收到以下错误: operation_id = payload['operationId']TypeError:字符串索引必须是整数 我尝试添加 content-type 标头 ..
发布时间:2022-01-11 17:47:50 Python

如何记录所有 Rabbit MQ 消息?

我们使用 RabbitMQ 服务器在应用程序之间进行消息传递.我们需要为所有进入 Rabbit 服务器的 amqp 消息创建一个中央日志.我们的目的不是临时调试,而是可审计性.理想情况下,我可以先登录到指定文件,然后再登录到外部系统,例如 Logly 或 Splunk. 我已经探索过打开 Firehose 并使用跟踪插件,但有问题的队列并不持久.如果在日志记录开始后将新队列和交换添加到虚拟主 ..
发布时间:2022-01-11 17:47:34 其他开发

在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关闭工作人员

我对此进行了大量研究,但我很惊讶我还没有在任何地方找到一个好的答案. 我在 Heroku 上运行一个大型应用程序,并且我有一些运行很长时间的 celery 任务,并在任务结束时保存结果.每次我在 Heroku 上重新部署时,它都会发送 SIGTERM(最终发送 SIGKILL)并杀死我正在运行的工作人员.我正在尝试找到一种方法让工作实例优雅地关闭自己并重新排队以供稍后处理,以便最终我们可以保 ..
发布时间:2022-01-11 17:47:25 Python

如何检查 RabbitMQ 消息队列是否存在?

如何检查消息队列是否已经存在? 我有 2 个不同的应用程序,一个创建队列,另一个从该队列读取. 所以如果我运行首先从队列中读取的客户端,它就会崩溃. 所以为了避免这种情况,我想先检查队列是否存在. 这是我如何读取队列的代码片段: QueueingBasicConsumer = new QueueingBasicConsumer(); ..
发布时间:2022-01-11 17:47:09 C#/.NET

使用 Celery 动态创建队列

我正在使用 Django、Celery 和 RabbitMQ 编写一个邮件列表管理器.当有消息进来时,会为每个接收者执行一个任务.所有任务都进入一个队列,一个或多个工作人员使用队列中的任务,构建电子邮件消息并发送它们. 单个队列会导致公平性问题:如果一条消息进入一个大型邮件列表,则会将大量任务添加到队列中,并且其他消息无法通过其他较小的邮件列表,直到所有消息都到达大名单已发送.我怎样才能找到 ..
发布时间:2022-01-11 17:47:00 其他开发

用于删除重复消息的 RabbitMQ 插件

我有一个用于文档生成的 RabbitMQ 队列.基本上,每个文档都有 type 和 state(新的、正在处理的、准备好的),所以我使用带有路由键的主题交换,例如 type.state.每次文档更改时,我都会将带有最后文档描述的消息发送到交易所,并且效果很好. 但有时文档可以被处理两次: 用户发送新文件.所以新消息 report.new 被发送到 exchange. 当工作人员尚未开 ..
发布时间:2022-01-11 17:46:34 其他开发

Spring:向 websocket 客户端发送消息

我正在构建一个使用 Spring Boot、RabbitMQ 和 WebSocket 作为 POC 的网络聊天,但我被困在最后一点:WebSockets 我希望我的 ws 客户端连接到特定端点,例如 /room/{id} 并且当新消息到达时,我希望服务器将响应发送给客户端,但我搜索了类似的东西并没有找到. 目前,当消息到达时,我使用RabbitMQ对其进行处理,例如 container. ..
发布时间:2022-01-11 17:46:25 Java开发

在android中使用rabbitmq进行聊天

我们已经在android中实现了rabbitmq聊天.但是rabbitmq的java客户端很耗电.rabbitmq适合安卓聊天吗?我们已经使用直接交换个人队列和个人路由键.rabbitmq中一对一聊天的最佳设计模式是什么.以及减少电池使用量的方法 解决方案 我不认为直接使用 RabbitMQ 来开发聊天是更好的解决方案. 还有其他更轻松的解决方案请阅读此帖子MQTT. 另一种标 ..
发布时间:2022-01-11 17:46:19 移动开发

芹菜广播与 RabbitMQ 扇出

我最近一直在使用 Celery,但我不喜欢它.它的配置杂乱无章、过于复杂且文档记录不完善. 我想使用 Celery 从单个生产者向多个消费者发送广播消息.令我困惑的是 Celery 术语与底层传输 RabbitMQ 术语之间的差异. 在 RabbitMQ 中,您可以有一个 fanout Exchange 和多个队列广播消息: 但在 Celery 中,这些术语都搞砸了:在这里你可以 ..
发布时间:2022-01-11 17:45:23 其他开发

具有 MassTransit、RabbitMQ 和 SignalR 的分布式架构

我在 MassTransit 和 rabbitmq 我必须提供在网页上生成报告的能力,而无需通过单击按钮重新加载页面,我还应该调用 Windows 服务进行数据准备(该服务处理每个请求 30 秒 - 1 分钟). 我基于此示例的第一次尝试:https://github.com/MassTransit/Sample-RequestResponse [HttpPost]公共异步任务 ..
发布时间:2022-01-11 17:45:15 C#/.NET

使用 RabbitMQ 的工作池和多租户队列

我正在开发一个基于多租户云的 Web 应用程序(许多客户端,每个客户端都有自己独立的“环境",但都在共享的硬件集上),我们正在为用户引入该功能批处理工作以供以后处理.批处理工作的类型真的不重要,只是数量足够,没有工作队列就不太实际.我们选择了 RabbitMQ 作为我们的底层队列框架. 因为我们是一个多租户应用程序,我们不一定希望客户端能够为另一个客户端造成冗长的队列处理时间,所以我们提出的 ..
发布时间:2022-01-11 17:45:08 其他开发

RabbitMQ 中的 celeryev 队列变得非常大

我在rabbitmq 上使用芹菜.我一直在向队列发送数千条消息,它们正在成功处理,一切正常.然而,几个rabbitmq队列中的消息数量正在增长相当大(队列中有数十万个项目).队列被命名为 celeryev.[...](见下面的截图).这是适当的行为吗?这些队列的目的是什么,不应该定期清除它们吗?有没有办法更频繁地清除它们,我认为它们占用了相当多的磁盘空间. 解决方案 您可以使用 CELER ..
发布时间:2022-01-11 17:44:48 其他开发

RabbitMQ:如何创建和恢复备份

我是 RabbitMQ 的新手,我需要一些帮助.如何备份和恢复到 RabbitMQ,我需要保存哪些重要数据. 谢谢! 解决方案 如果您安装了管理插件,您可以在 Overview 页面上备份和恢复代理.在底部,您将看到 Import/Export Definitions,您可以使用它来下载代理的 JSON 表示形式. 这将恢复 Exchange、队列、虚拟主机、策略和用户. ..
发布时间:2022-01-11 17:44:33 其他开发

curl 获取 Rabbitmq 队列大小

有没有办法通过简单的 Curl 获取 rabbitmq 中队列的大小(剩余消息)? 类似 curl -xget http://host:1234/api/queue/test/stats 谢谢 解决方案 最后我做到了: curl -s -i -u guest:guest http://host:port/api/queues/vhost/queue_name |sed 's/ ..
发布时间:2022-01-11 17:44:18 其他开发

撤销 celery 的任务

我想明确撤销 celery 的任务.这就是我目前的做法:- from celery.task.control import revoke撤销(task_id,终止=真) 其中task_id是string(也尝试过将其转换为UUID uuid.UUID(task_id).hex). 经过上述过程,当我再次启动 celery celery worker -A proj 时,它仍然使用相同的消 ..
发布时间:2022-01-11 17:44:10 Python