问题标签 [php-amqplib]

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.

0 投票
0 回答
2329 浏览

apache-kafka - “Kafka消费组授权失败。” 偶尔?

我有一个 php 程序,它有 2 个消耗 kafka 消息的 php 进程。但有时它会显示诸如“Kafka 消费者组授权失败”之类的错误。2个进程之间有什么关系吗?它们具有相同的主题和组 ID,当然 ACL 策略类型是 GSSAPI。但我真的不知道为什么它只是偶尔发生?

这是代码:

0 投票
1 回答
651 浏览

php - 使用 AMQP 从 PHP 到 Apache ActiveMQ 的连接问题

我尝试上下搜索网络——要么他们将我指向 RabbitMQ,这是不可能的,因为客户特别要求 ActiveMQ / Amazon MQ,它基本上是亚马逊云中的 ActiveMQ。其他结果建议使用不同的协议 (STOMP) - 我不能这样做,因为客户再次只允许通过 AMQP 访问

所以我很茫然..你能帮我走吗?我尝试使用PHPamqplib,但在连接建立期间访问已经运行的 activeMQ 代理“Invalid frame type 65 in ....AbstractConnection.php:571”时出现错误。

当我构建我的 Test 类的一个实例来发送消息时,在构造函数的执行过程中已经发生了错误。在你问之前,我尝试了库提供的不同 AMQP 连接类型——错误总是一样的。老实说,当它使用 amqpnetlite 库在 C# 中工作时,我有点不知所措,缺少什么以及这个错误的根源。任何帮助将不胜感激!

0 投票
0 回答
1137 浏览

php - 如何在 alpine 映像中安装 php-amqplib?

我使用 docker-compose version: '3' 并且需要安装php-amqplib. 我遇到了奇怪的行为。抛出关于丢失的异常sockets,但我安装并添加到我的 composer.json,如何安装php-amqplib

composer.json 的一部分

0 投票
1 回答
487 浏览

php - php-amqplib - read_write_timeout 和心跳关系

在阅读 php-amqplib 配置时,我看到了两个参数:“heartbeat”和“read_write_timeout”。

在网上我发现了这个(在 2 或 3 个论坛上): read_write_timeout 必须至少是心跳的 2 倍但我从来没有看到这背后的原因。

有人能解释一下为什么 read_write_timeout 必须至少是心跳的 2 倍吗?它取决于心跳间隔吗?

预先感谢。

0 投票
0 回答
207 浏览

php - Rabbit Php-amqp lib客户端心跳为0但为什么不使用服务器默认60?

我正在使用长时间运行的消费者测试心跳,在兔子文档中指出,如果客户端发送 0 用于心跳,则使用客户端和服务器之间的更大值,但我看到的是它只是被禁用,但我没有在 rabbit 配置文件中设置了配置,所以我希望默认为 60 秒。如果在客户端上设置了心跳,则连接会按预期断开。用兔子 3.7 试过。

我是否错误地理解了文档?

0 投票
0 回答
242 浏览

php - Symfony Messenger 长时间运行的 Worker 和 AMQP 心跳

在信使处理程序中,如果消息的处理时间比心跳时间长,则由于连接断开,您将无法确认消息。

处理程序中有没有办法手动保持连接处于活动状态?将消息发布到“ping”队列是否足够?

例子:

提前致谢

0 投票
1 回答
292 浏览

php - 如何使用 php-amqplib 从消费者回调中关闭 rabbitmq 连接

我已经能够使用 php-amqplib 库设置一个连接到 RabbitMQ 的脚本。但是,如果需要,我希望能够退出脚本。

我们认为创建一个 stop.txt 文件可以解决问题。基本上,一旦收到消息,如果脚本看到该文件,它必须停止接收任何进一步的消息,删除文件并退出脚本。

但是,尽管它正在删除文件,但它不会阻止接收更多消息,也不会退出脚本。

如您所见,我使用与此官方示例使用的完全相同的函数来退出脚本:https ://github.com/php-amqplib/php-amqplib/blob/master/demo/amqp_consumer.php 。见第 54 行。

我是在做错什么还是不理解什么?我是这个图书馆的新手。

这是我正在使用的脚本。为简洁起见,我省略了部分内容。

提前致谢,

理查德

0 投票
0 回答
321 浏览

celery - PhpAmqpLib 获取 'PRECONDITION_FAILED - 消费者 ack 在通道 1 上超时', (0, 0),

添加 'delivery_mode' => 2 后开始出现错误不可恢复的错误:PreconditionFailed(406, 'PRECONDITION_FAILED - consumer ack timed out on channel 1', (0, 0), '') 使用的超时值:1800000 ms。此超时值可以配置,请参阅消费者文档指南以了解更多信息

它间歇性地抛出这个错误并且 pod 正在重新启动。

0 投票
0 回答
90 浏览

php - 从 CPanel 计划任务启动时,CloudAMQP 连接被拒绝

我正在尝试通过我的 CPanel 上的计划任务创建与 CloudAMQP 的连接,当我 SSH 到服务器并手动运行脚本时它工作正常,但是当我尝试通过调度程序运行时,我得到了这个:

我的 PHP 代码如下所示:

老实说,我很难过。第一个大型 PHP 项目(学习编码),我迷路了。

0 投票
1 回答
713 浏览

php - PHP RabbitMQ 消费者停止消费事件

我有一个使用 php-amqplib 的 php 守护程序,它使用来自 RabbitMQ 服务器的消息。这是它的要点(尽管它比这更复杂一些):

当我在后台运行它时,它会处理事件,将输出和错误写入各种日志,我可以在 RabbitMQ 控制面板中看到队列有消费者。然后在相当长的一段时间后它停止这样做:错误和输出日志中都没有出现任何消​​息,RabbitMQ 控制面板显示队列有 0 个消费者,但进程仍在以某种方式运行。