tutorials on RabbitMq's site非常直截了当,但我注意到在the Rpc example中,开发人员选择使用线程阻止调用consumer.Queue.Dequeue()
而不是使用EventingBasicConsumer
和其他地方使用的事件处理模型。
从版本3.5.0开始,应用程序回调处理程序可以调用阻止操作(例如
IModel.QueueDeclare
或IModel.BasicCancel
)。同时调用IBasicConsumer
个回调。
the old documentation(v.1.5.0)表明不支持
应用程序回调处理程序不得调用阻止AMQP操作(例如
IModel.QueueDeclare
或IModel.BasicCancel
)。如果他们这样做,该频道将陷入僵局。 [...]因此,QueueingBasicConsumer
是订阅队列最安全的方式。
可能是RPC示例尚未更新吗?或者我错过了什么?我非常感谢能够指出一些关于此的文档。
答案 0 :(得分:3)
你是对的,没有必要使用include 'institute.php';
include 'student.php';
include 'enroll.php';
$institute=new institute\institute('GLAB');
$student=new student\student('zami');
$enroll=new enroll\enroll($student,$institute);
。
RabbitMQ教程中有an issue个回复。
我已发送a pull request并已合并,希望文档尽快更新。