tutorials on RabbitMq's site सुंदर सीधे आगे हैं, लेकिन मैंने देखा है कि the Rpc example में, डेवलपर्स EventingBasicConsumer
और अन्यत्र इस्तेमाल घटना से निपटने के मॉडल का उपयोग करने के बजाय धागा-अवरुद्ध कॉल consumer.Queue.Dequeue()
उपयोग करने के लिए चुनें।RabbitMQ Rpc: EventingBasicConsumer या QueueingBasicConsumer
current documentation के माध्यम से देख यह कहा गया कि
संस्करण 3.5.0 आवेदन कॉलबैक हैंडलर्स के रूप में अवरुद्ध संचालन आह्वान कर सकते हैं (जैसे
IModel.QueueDeclare
याIModel.BasicCancel
के रूप में)।IBasicConsumer
कॉलबैक समवर्ती रूप से लागू किए जाते हैं।
कहाँ the old documentation (वी। 1.5.0) में कहा गया है कि यह समर्थित नहीं है
आवेदन कॉलबैक हैंडलर्स AMQP संचालन अवरुद्ध आह्वान नहीं होना चाहिए ( जैसे
IModel.QueueDeclare
याIModel.BasicCancel
)। यदि वे करते हैं, तो चैनल डेडलॉक होगा। [...] इस कारण से,QueueingBasicConsumer
एक कतार की सदस्यता लेने का सबसे सुरक्षित तरीका है।
क्या यह हो सकता है कि आरपीसी उदाहरण अपडेट नहीं किया गया हो? या क्या मैं कुछ न कुछ भूल रहा हूं? मैं इसके बारे में कुछ दस्तावेज की ओर इशारा करने की बहुत सराहना करता हूं।