主动拉取队列消息 - MessageQueuePull
函数简介
主动拉取一条消息,返回 JSON 字符串。
接口名称
MessageQueuePull
DLL调用
char* MessageQueuePull(int64_t instance, int64_t consumer, int32_t timeout_ms);
参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| instance | 长整数型 | OLA 实例句柄。 |
| consumer | 长整数型 | 消费者句柄(由 MessageQueueConsume 创建,且 on_message 可为 NULL)。 |
| timeout_ms | 整数型 | 超时策略:0=立即返回,>0=最多等待 N 毫秒,<0=无限等待。 |
返回 JSON 字段
topic(string):队列名is_text(int):1=文本,0=二进制ack_token(int64):消息确认令牌,可用于MessageQueueAck/Nackdata_len(int):负载字节长度data(string):文本内容(仅is_text=1)data_hex(string):二进制十六进制(仅is_text=0)
示例
char* json = MessageQueuePull(instance, consumer, 1000);
if (json) {
printf("%s\n", json);
FreeStringPtr(instance, json);
}
返回值
JSON 字符串指针;无消息或失败返回 0。
注意事项
- 返回值需调用
FreeStringPtr释放。
