rabbitmq设置消息属性php

时间:2013-01-10 17:50:31

标签: php symfony rabbitmq amqp

我正在尝试使用Symfony中的RabbitMQ Bundle设置消息属性,但我看不到在哪里/如何做到这一点。以下是我在RabbitMQ Admin UI中的操作方法

enter image description here

属性到期:50000是我想要设置的。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

自2014年1月8日起,您使用RabbitMQ Bundle设置邮件属性,您可以查看提交here

现在,当您发布消息时,您可以设置数组$ additionalProperties

public function publish($msgBody, $routingKey = '', $additionalProperties = array())

您可以找到支持的邮件属性here

例如:

$msg = ['arg1' => 'val1'];
$queue->setContentType('application/json');
$queue->publish(
        json_encode($msg),
        "",
        ['expiration' => '50000']
);

如果你想使用"标题"对于自定义标头,它有点复杂,因为您必须为每个值定义数据类型。要发送,例如$ header [' arg1'] =" val1"像一个字符串,你必须做这样的事情:

$msg = ['arg1' => 'val1'];
$queue->setContentType('application/json');
$queue->publish(
        json_encode($msg),
        "",
        ["application_headers" => ["arg1" => ["S", "val1"]]]
);

有效数据类型为:

S - String

我 - 整数

D - 小数

T - 时间戳

F - 表

A - 数组

答案 1 :(得分:0)

目前这是不可行的。如果使用捆绑包依赖的基础php-amqplib库

,则可以设置消息属性