it-swarm.com.de

Wie lösche oder lösche ich eine Warteschlange?

Ich habe eine große Warteschlange bei VBO geplant, aber ich habe es mir anders überlegt. Wie kann ich es löschen? Ich finde anscheinend keine Benutzeroberfläche/Schnittstelle zum Verwalten von Warteschlangen. Muss ich es in der Datenbank löschen?

8
giorgio79

Es gibt keine integrierte Verwaltungsoberfläche für Warteschlangen in Drupal, aber wenn Sie nach einer suchen, lesen Sie das Warteschlangen-UI-Modul .

Um eine Warteschlange in Ihrem Code zu löschen, verwenden Sie $queue->deleteQueue();

11
bjeavons

drush hat keine Option zum Löschen von Warteschlangen, es gibt nur drush queue-list und drush queue-run. Sie können es jedoch verwenden, um die entsprechenden Warteschlangendatensätze aus der Datenbank zu löschen:

  1. Verwenden drush queue-list, um den Namen der Warteschlange herauszufinden, die Sie löschen möchten. In meinem Fall ist es message_subscribe.

  2. Verwenden Sie einen Befehl wie diesen und ersetzen Sie ihn entsprechend durch den Namen Ihrer Warteschlange:

    drush sqlq "DELETE FROM queue WHERE name='message_subscribe'"
    
  3. Bestätigen mit drush queue-list dass die betreffende Warteschlange jetzt keine Elemente mehr enthält.

Diese Lösung ist @ batigolix's ziemlich ähnlich, nur dass sie eine bestimmte Warteschlange anstelle aller Warteschlangen löscht.

Vorsicht. Wie @batigolix sagte, achten Sie darauf, keine Daten zu verlieren! Diese Lösung ist möglicherweise nicht für eine Produktionsumgebung geeignet.

13
tanius

Ja, Sie können eine Warteschlange in der Datenbank löschen oder löschen, indem Sie die Warteschlangentabelle leeren.

Mit Drush können Sie dies ganz einfach mit drush sqlq "TRUNCATE queue".

Vorsicht. Ich habe dies in einer lokalen Entwicklungsumgebung versucht. Es kann in der Produktion nicht empfohlen werden.

Das Leeren der gesamten queue -Tabelle ist nicht immer eine gute Idee, da sie auch Elemente aus Warteschlangen enthält, die von anderen Modulen erstellt wurden. Eine sauberere Möglichkeit besteht also darin, Elemente aus einer bestimmten Warteschlange zu entfernen.

  • Überprüfen Sie zunächst die Warteschlangen in der Tabelle queue, indem Sie die Tabelle mit mysql oder phpmyadmin durchsuchen. Um alle Warteschlangennamen mit einigen Elementen in der Warteschlange abzurufen, können Sie SELECT DISTINCT name FROM queue.
  • Zweitens: Wenn Sie sich für die Warteschlange entschieden haben, die Sie leeren möchten, entfernen Sie Elemente nur für diese Warteschlange mit DELETE FROM queue WHERE name = :name. Ersetzen Sie `: name: durch den Namen der Warteschlange, die Sie im ersten Schritt gefunden haben.

Ich habe dies in der Produktion verwendet, aber Sie sollten vorsichtig sein und Ihr Urteilsvermögen einsetzen. Kurz gesagt, das Beste ist, keine Inhalte aus der Warteschlange oder den Warteschlangen anderer Module zu löschen, deren Zweck Sie nicht kennen.

5
batigolix