An extended queuing module fully backward compatible with and a drop-in replacement for DatabaseQueue.
Features
Queue Item (
advancedqueue_item) entity typeAdvancedQueuequeue implementation- proper FIFO implementation (items processed in order based on their created date, regardless of the queue they belong to)
- additional queue item details:
- human readable, translatable names for queued items
- status of queued items (queued, processing, processed, failed, retry),
- result payload
- option to start processing queue items at set time in the future
- option to repeat processing in case of failure with pre-set time delay (based on queue worker definition)
- suspension of queue processing for a specific time
queue- and item-related events:
queue.deletequeue.suspendqueue.unsuspenditem.createitem.claimitem.preprocessitem.postprocessitem.releaseitem.requeueitem.resetitem.deleteSeeExampleEventSubscriberinadvancedqueue_examplemodule for example implementations.
AdvancedQueueWorkerManager- support for additional queue worker definition elements (through annotations):
descriptiongrouplease.timeretry.attemptsretry.delaysuspend.timedispatch_events.queue.deletedispatch_events.queue.suspenddispatch_events.queue.unsuspenddispatch_events.item.createdispatch_events.item.claimdispatch_events.item.preprocessdispatch_events.item.postprocessdispatch_events.item.releasedispatch_events.item.requeuedispatch_events.item.resetdispatch_events.item.deletedelete.when_completeddelete.hardcron.timeSeeAdvancedQueueWorkerManager::$defaultsfor more info on each element.
- support for additional queue worker definition elements (through annotations):
cron support
- process advanced queues with cron
- exclude specific queues from cron processing
- processing timeout
- garbage collection
Drush commands:
advancedqueue-queue-list(aqql)advancedqueue-queue-process(aqqp)advancedqueue-queue-delete(aqqd)advancedqueue-queue-suspend(aqqs)advancedqueue-queue-unsuspend(aqqu)advancedqueue-item-list(aqil)advancedqueue-item-process(aqip)advancedqueue-item-release(aqirel)advancedqueue-item-requeue(aqireq)advancedqueue-item-reset(aqires)advancedqueue-item-delete(aqid)
Drupal Console commands:
advancedqueue:queue:list(aqql)advancedqueue:queue:process(aqqp)advancedqueue:queue:delete(aqqd)advancedqueue:queue:suspend(aqqs)advancedqueue:queue:unsuspend(aqqu)advancedqueue:item:list(aqil)advancedqueue:item:process(aqip)advancedqueue:item:release(aqirel)advancedqueue:item:requeue(aqireq)advancedqueue:item:reset(aqires)advancedqueue:item:delete(aqid)
submodules:
advancedqueue_ui- extensive admin user interface to view and manage queues, queue groups and queue items
- bulk actions available for queue item operations
- View queues and Manage queues user permissions
advancedqueue_example- 3 example queue definitions illustrating queue worker annotation elements and processing results
- example event subscriber
- user interface to generate queue items