キューをクリアまたは削除するにはどうすればよいですか?


8

VBOで大きなキューをスケジュールしましたが、気が変わりました。どうすれば削除できますか?キューを管理するためのUI /インターフェースが見つからないようです。データベースから削除する必要がありますか?

回答:


11

Drupalにはキュー用の組み込みの管理UIはありませんが、1つを探している場合は、キューUIモジュールを確認してください。

コードでキューを削除するには $queue->deleteQueue();


13

drushキューをクリアするオプションを持っていない、そこだけであるdrush queue-listdrush queue-run。ただし、これを使用して、対応するキューレコードをデータベースから削除できます。

  1. 使用drush queue-listして、クリアするキューの名前を見つけます。私の場合はmessage_subscribeです。

  2. 次のようなコマンドを使用し、それに応じてキューの名前に置き換えます。

    drush sqlq "DELETE FROM queue WHERE name='message_subscribe'"
  3. drush queue-list問題のキューにアイテムが含まれていないことを確認します。

このソリューションは@batigolixのソリューションと非常に似ていますが、すべてのキューではなく特定のキューをクリアします。

注意してください。@batigolixが言ったように、データを失わないように注意してください!このソリューションは本番環境向けではない可能性があります…


5

はい。キューテーブルを空にすることで、データベース内のキューを削除またはクリアできます。

Drushでは、で簡単にそれを行うことができますdrush sqlq "TRUNCATE queue"

気をつけて。これをローカルの開発環境で試しました。本番環境では推奨されない場合があります。

queue他のモジュールによって作成されたキューからのアイテムも含まれているため、テーブル全体を空にすることは必ずしも良い考えではありません。したがって、より明確な方法は、特定のキューからアイテムを削除することです。

  • まず、またはqueueを使用してテーブルを参照し、テーブルに存在するキューを調べます。キューにいくつかの項目があるすべてのキュー名を取得するには、を実行できます。mysqlphpmyadminSELECT DISTINCT name FROM queue
  • 次に、空にするキューを決定したら、を使用してそのキューのアイテムのみを削除しますDELETE FROM queue WHERE name = :name。`:name:を最初のステップで見つけたキューの名前に置き換えます。

私はこれをプロダクションで使用しましたが、注意して判断してください。簡単に言うと、他のモジュールのキューまたは目的がわからないキューからデータを削除しないことが最善です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.