Il tutorials on RabbitMq's site sono piuttosto semplice, ma ho notato che in the Rpc example, gli sviluppatori scelgono di utilizzare la chiamata filo-blocco consumer.Queue.Dequeue()
invece di utilizzare il EventingBasicConsumer
e il modello di gestione degli eventi utilizzato altrove.RabbitMQ Rpc: EventingBasicConsumer o QueueingBasicConsumer
guardando attraverso il current documentation si precisa che
A partire dalla versione 3.5.0 gestori di applicazione richiamata può invocare le operazioni di blocco (come
IModel.QueueDeclare
oIModel.BasicCancel
). I callback vengono richiamati contemporaneamente.
Dove come the old documentation (v. 1.5.0) si rileva che non è supportato
gestori di callback applicazione non devono invocare bloccando operazioni AMQP (come
IModel.QueueDeclare
oIModel.BasicCancel
). Se lo fanno, il canale si bloccherà. [...] Per questo motivo,QueueingBasicConsumer
è il modo più sicuro di iscriversi a una coda.
Potrebbe essere che l'esempio RPC non è stato aggiornato? O mi sta sfuggendo qualcosa? Gradirei molto essere indicato per alcuni documenti su questo.