Closed lengqiuqiuqiu closed 9 months ago
感谢PR, 设置重试失败是一个不错的功能,但是
$client->subscribe($cb1,$cb2);
$client->subscribe($cb1,$cb2);
这样的写法如果有多个订阅比较麻烦,并且只提供最大重试失败回调可能还不够,感觉应该添加一个每次消费失败触发的回调,并且提供上下文包括失败次数,异常,最大重试次数等,这样业务可以根据需要做不同的处理,更激进一点也可以允许在回调里更改数据和上下文:
$client->subscribe($cb);
$client->onConsumeFailure(function($subject, &$data, &$context){
// $subjet是主题,$data是数据
// $context 里包含如下信息
$context['error']; // 异常信息
$context['attempts']; // 已经重试次数,对应$package['attempts']
$context['max_attempts']; // 系统允许最大重试次数,对应$this->_options['max_attempts']
});
谢谢walkor回复,消费失败回调已经改成了onConsumeFailure形式,看看有没有什么问题
当消费重试次数达到最大时执行失败回调,方便对该消息进行后续处理。