消息队列回调类型 - MessageQueueCallback
类型简介
MessageQueueCallback 是消息队列消费回调函数类型,用于接收消息并获取确认令牌。
回调定义
typedef void(OLA_CALL_TYPE* MessageQueueCallback)(int64_t consumer, char* topic,
int64_t data_ptr, int32_t data_len,
int32_t is_text, int64_t ack_token);
参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| consumer | 长整数型 | 消费者句柄。 |
| topic | 字符串 | 主题名(队列名)。 |
| data_ptr | 长整数型 | 数据指针(仅回调期间有效)。 |
| data_len | 整数型 | 数据长度(字节)。 |
| is_text | 整数型 | 是否文本:1=文本,0=字节流。 |
| ack_token | 长整数型 | 确认令牌,>0 时可 MessageQueueAck/Nack。 |
使用示例
void OLA_CALL_TYPE OnQueueMessage(int64_t consumer, char* topic,
int64_t data_ptr, int32_t data_len,
int32_t is_text, int64_t ack_token) {
if (is_text == 1) {
printf("[Queue] %s => %.*s\n", topic, data_len, (char*)data_ptr);
} else {
printf("[Queue] %s => %d bytes\n", topic, data_len);
}
if (ack_token > 0) {
MessageQueueAck(instance, consumer, ack_token);
}
}
注意事项
data_ptr仅在回调期间有效,异步处理前请先拷贝。- 建议每条消息都进行 Ack 或 Nack,避免消息滞留。
