Implicit, operațiunea basic_publish din protocolul AMQP este fire-and-forget: dacă brokerul cade chiar înainte de a scrie mesajul pe disc, producătorul nu are nicio modalitate de a ști că mesajul s-a pierdut. Publisher Confirms rezolvă această problemă trimițând un semnal asincron de ack sau nack de la broker direct către producător.
Activarea confirmărilor la publicare în Python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# Activăm Publisher Confirms pe acest canal:
channel.confirm_delivery()
try:
# Publicăm mesajul marcat ca persistent (delivery_mode=2):
channel.basic_publish(
exchange='comenzi-exchange',
routing_key='comanda.noua',
body=b'{"id": 450, "valoare": 120.0}',
properties=pika.BasicProperties(delivery_mode=2)
)
print("Mesajul a fost confirmat și salvat pe disc de broker!")
except pika.exceptions.UnroutableError:
print("Mesajul nu a putut fi rutat în nicio coadă activă!")
Întrebări & Exemple de Cod:
Confirmări de la Producător în RabbitMQ: Publisher Confirms vs Tranzacții AMQPAi o nelămurire despre utilizarea comenzii
Confirmări de la Producător în RabbitMQ: Publisher Confirms vs Tranzacții AMQPsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.