Câu trả lời:
Không có giao diện người dùng quản lý tích hợp cho hàng đợi trong Drupal nhưng nếu bạn đang tìm kiếm một mô-đun hàng đợi .
Để xóa hàng đợi trong mã của bạn, hãy sử dụng $queue->deleteQueue();
drush
không có tùy chọn để xóa hàng đợi, chỉ có drush queue-list
và drush queue-run
. Tuy nhiên, bạn có thể sử dụng nó để xóa các bản ghi hàng đợi tương ứng khỏi cơ sở dữ liệu:
Sử dụng drush queue-list
để tìm ra tên của hàng đợi bạn muốn xóa. Trong trường hợp của tôi, nó là message_subscribe
.
Sử dụng một lệnh như thế này, thay thế bằng tên hàng đợi của bạn cho phù hợp:
drush sqlq "DELETE FROM queue WHERE name='message_subscribe'"
Xác nhận drush queue-list
rằng hàng đợi trong câu hỏi hiện không có mục nào trong đó.
Giải pháp này khá giống với @ batigolix , chỉ là nó xóa một hàng đợi cụ thể thay vì tất cả các hàng đợi.
Cẩn thận. Giống như @batigolix đã nói, hãy cẩn thận để không mất dữ liệu! Giải pháp này có thể không dành cho môi trường sản xuất.
Có, bạn có thể xóa hoặc xóa hàng đợi trong cơ sở dữ liệu bằng cách làm trống bảng xếp hàng.
Drush cho phép bạn làm điều đó một cách dễ dàng với drush sqlq "TRUNCATE queue"
.
Cẩn thận . Tôi đã thử điều này trong một môi trường phát triển địa phương. Nó có thể không được khuyến khích trong sản xuất.
Làm trống toàn bộ queue
bảng không phải lúc nào cũng là một ý tưởng hay vì nó cũng chứa các mục từ hàng đợi được tạo bởi các mô-đun khác. Vì vậy, một cách sạch hơn là loại bỏ các mục khỏi một hàng đợi cụ thể.
queue
bảng bằng cách duyệt bảng bằng mysql
hoặc phpmyadmin
. Để có được tất cả các tên hàng đợi với một số mục trong hàng đợi, bạn có thể làm SELECT DISTINCT name FROM queue
.DELETE FROM queue WHERE name = :name
. Thay thế `: name: bằng tên của hàng đợi bạn tìm thấy trong bước đầu tiên.Tôi đã sử dụng điều này trong sản xuất, nhưng bạn nên cẩn thận và sử dụng phán đoán của mình. Nói tóm lại, điều tốt nhất là không xóa nội dung khỏi hàng đợi hoặc hàng đợi của mô-đun khác mà bạn không biết mục đích.