草庐IT

celery-rabbitmq

全部标签

PHPUnit RabbitMQ : write test for create connection function

我面临以下问题。我写了一个函数,它在给定所需参数的情况下创建一个连接对象(AMQPConnection)。现在想写相应的单元测试。如果没有运行RabbitMQ代理,我只是不知道该怎么做。这是有问题的功能:publicfunctiongetConnection($hostKey,array$params){$connection=null;try{$connection=newAMQPConnection($params['host'],$params['port'],$params['username'],$params['password'],$params['vhost']);//

php - rabbitmq AMQP::消费()

AMQP函数consume()是一个带有回调的阻塞函数,是否可以为consume()函数设置超时,以便在特定时间后不再阻塞并且代码执行完成? 最佳答案 是的,方法如下:$amqp=newAMQPConnection($your_connection_params);$amqp->setTimeout($seconds);然后,当您在队列上调用consume()时,如果在超时期限内没有消息到达,则会从consume()中抛出AMQPException并显示消息“Resourcetemporaryunavailable”。如果您曾经中断

php - 连接时rabbitmq错误

当我尝试使用php-amqp连接时出现此错误:fatalerror:在中找不到类“AMQPConnection”$credentials=array('host'=>'localhost','port'=>5672);$cnn=newAMQPConnection($credentials);$cnn->connect(); 最佳答案 您似乎没有AMQPPECLextension安装。PECL扩展不是PHP的默认部分,因此您需要使用pecl工具编译和安装它。 关于php-连接时rabbit

php - 如何从 PHP 使用 RabbitMQ 延迟消息队列?

我正在尝试使用DelayedMessageQueue对于来自PHP的RabbitMQ,但我的消息只是消失了。我使用以下代码声明交换:$this->channel->exchange_declare('delay','x-delayed-message',false,/*passive,createifexchangedoesn'texist*/true,/*durable,persistthroughserverreboots*/false,/*autodelete*/false,/*internal*/false,/*nowait*/['x-delayed-type'=>['S','

java - 如何用另一种语言(不是 Python)编写 Celery worker/tasks?

我知道Celery工作人员可以在MessageProtocolv2中接收消息格式。该协议(protocol)通过langheader支持多种语言:...application_headers={'lang':'py','task':'proj.tasks.add',...}...在documentation写的是工作人员可以将消息重定向到支持该语言的工作人员,并且没有关于如何使用Java、PHP等编写工作人员或任务的信息。 最佳答案 GoCelery应该这样做。然而,它确实得到了issues当我发现你的问题时,我正在寻找其他例子。

php - 将消息 TTL 设置为一小时 RabbitMQ

如何设置消息TTL(不是队列)Exchange(交换发送到多个队列)消息(发布消息时)队列(在队列本身上,但同样这是消息TTL而不是队列TTL)我正在运行RabbitMQ3.x、Symfony2.1.x和RabbitMqBundle.我尝试过的:当我从RabbitMQ管理UI创建队列时设置消息TTL我将消息属性设置为'x-message-ttl'=>3600000。在RabbitMQ配置中,它看起来像这样:{"name":"blah_queue","vhost":"foobar","durable":true,"auto_delete":false,"arguments":{'x-me

PHP 客户端无法连接到本地主机上的 RabbitMQ 服务器

操作系统:CentOS6.4我正在尝试使用php客户端连接到RabitMQ服务器,如下所示,$connection=newAMQPConnection('10.1.150.109',5672,'guest','guest');$channel=$connection->channel();但是当我从浏览器运行脚本时,它给了我这个,/var/www/html/event/vendor/videlalvaro/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php中的异常“PhpAmqpLib\Exception\AMQPRuntimeException”和

java - RabbitMQ 消息签名

我想使用RabbitMQ在部署在不同网络上并由不同人员维护的多个应用程序之间进行通信。作为消息的接收者(消费者),我想确信消息的发送者(生产者)就是他声称的那个人。我能想到的最佳方法是对这些签名进行消息签名和验证。由于这是我第一次使用RabbitMQ做一些事情,所以我对如何实现它有些困惑。消息发送者和接收者是Java应用程序。我决定使用SpringAMQP模板来让事情对我来说更容易一些。在一个完美的场景中我想在消息已经是字节数组/流时以某种方式拦截消息,签署这个blob并将签名附加为消息头。在接收端,我再次想在反序列化之前拦截消息,验证来自header的签名与blob的对比,如果一切正

java - 同时使用 ActiveMQ 和 RabbitMQ

根据我使用消息代理的经验,RabbitMq在重负载下具有更好的性能。但是,为了简单起见,最好在浏览器中使用AtiveMQ。我想知道是否可以同时使用它们?此外,有什么办法可以让我在浏览器中使用ActiveMQ发送消息并在服务器端使用RabbitMQ接收相同的消息?如果有人向我推荐有用的示例代码,我将不胜感激。 最佳答案 ActiveMQ可以使用AMQP1.0,RabbitMQ可以使用AMQP1.0plug-in.您可以使用此协议(protocol)创建网桥。但是阅读您的问题,我认为您不需要ActiveMQ。为了将消息发送到浏览器,您可

java - RabbitMQ - Apache Camel Reading Messages 如何处理失败的消息

我有以下PHP应用程序。将用户注册发布到消息队列。Java应用程序从该队列中读取并导入它。希望下图能够描述它。我只处理Java方面的事情。json消息已经存在于队列中。路由(Java消费端)。@ComponentpublicclassSignUpRouting{errorHandler(deadLetterChannel("rabbitmq://signUpDeadLetter.exchange?username=etc..").useOriginalMessage());from("rabbitmq://phpSignUp.exchange?username=etc....").ro