abrufen Ich habe ein paar Probleme mit PHP + RabbitMQ + MySQL.Wie die gleiche Nachricht zweimal oder mehr in RabbitMQ mit PHP
Ich habe Arbeiter auf PHP, die einen Datensatz in DB aktualisieren. Jetzt versuche ich, die richtige Arbeit zu machen, wenn Server MySQL weggegangen ist.
Was ich tue: Ich versuche wieder 10-mal DB, wenn ich kann nicht - müssen diese Massage, um wieder zurück auf die RabbitMQ.
Für Nachricht akzeptieren ich basic_ack, für die Ablehnung ich basic_nack.
Beispiel:
if ($can_accept_message) {
$message->delivery_info['channel']->basic_ack($message->delivery_info['delivery_tag']);
} else {
$message->delivery_info['channel']->basic_nack($message->delivery_info['delivery_tag']);
}
Aber basic_nack löschen diese Meldung aus der Warteschlange, und ich kann es nicht noch einmal wiederholen, (
wie dieser Versuch:https://github.com/php-amqplib/php-amqplib/blob/d2b8a292f709b79b1615bef87b1b89bde4c7c347/demo/basic_nack.php
Dies lesen:https://github.com/php-amqplib/php-amqplib/issues/221
Aber es funktioniert immer noch nicht.
Was ist los? Vielleicht hast du noch andere Ideen?
können Sie uns zeigen die Konfig deiner Warteschlange bitte? Und andere Dummy-Frage, bist du sicher, dass du in das "else" eingibst? – olibiaz
** >> können Sie mit uns die Config Ihrer Warteschlange zeigen, bitte ** wie dieser Versuch: https://github.com/php-amqplib/php-amqplib/blob/d2b8a292f709b79b1615bef87b1b89bde4c7c347/demo/basic_nack.php ** >> Und andere Dummy Frage, Sie sicher, dass Sie in die sonst? ** Ja –