VBOで大きなキューをスケジュールしましたが、気が変わりました。どうすれば削除できますか?キューを管理するためのUI /インターフェイスが見つからないようです。データベースから削除する必要がありますか?
Drupal)にはキューの組み込み管理UIはありませんが、1つを探している場合は Queue UIモジュール を確認してください。
コード内のキューを削除するには、$queue->deleteQueue();
を使用します
drush
にはキューをクリアするオプションがありません。drush queue-list
とdrush queue-run
があります。ただし、これを使用して、対応するキューレコードをデータベースから削除できます。
drush queue-list
を使用して、クリアするキューの名前を見つけます。私の場合はmessage_subscribe
です。
次のようなコマンドを使用し、それに応じてキューの名前に置き換えます。
drush sqlq "DELETE FROM queue WHERE name='message_subscribe'"
drush queue-list
を使用して、問題のキューにアイテムが含まれていないことを確認します。
このソリューションは @ batigolix's と非常に似ていますが、すべてのキューではなく特定のキューをクリアします。
注意してください。@batigolixが言ったように、データを失わないように注意してください!このソリューションは本番環境向けではない可能性があります…
はい、キューテーブルを空にすることで、データベース内のキューを削除またはクリアできます。
Drushでは、drush sqlq "TRUNCATE queue"
を使用して簡単にこれを行うことができます。
注意。これをローカルの開発環境で試しました。本番環境では推奨されない場合があります。
queue
テーブル全体を空にすることは、他のモジュールによって作成されたキューからのアイテムも含まれているため、常に良い考えとは限りません。したがって、より明確な方法は、特定のキューからアイテムを削除することです。
queue
またはmysql
を使用してテーブルを参照し、phpmyadmin
テーブルに存在するキューを調べます。キューにいくつかの項目があるすべてのキュー名を取得するには、SELECT DISTINCT name FROM queue
を実行できます。DELETE FROM queue WHERE name = :name
を使用して、そのキューのアイテムのみを削除します。 `:name:を最初のステップで見つけたキューの名前に置き換えます。私はこれをプロダクションで使用しましたが、注意して判断してください。簡単に言うと、他のモジュールのキューまたは目的がわからないキューからデータを削除しないことが最善です。