eca_queue: Add option to distribute tasks into their own queues

Issue information

From user: mxh

Related to !251 (merged)

Contribution record

Fork management

Problem/Motivation

We would like to use eca_queue for various sorts of tasks to be processed, which may differ in their purpose. Some tasks may be processed pretty fast, where others might take more time. Currently, eca_queue only supports processing using one queue. This means that enqueued tasks that could've been processed faster all need to wait until some slow tasks are finished.

We would like to have the ability for distributing certain tasks into separate queues, so that they don't block tasks of a different type.

Steps to reproduce

Proposed resolution

Extend the existing TaskWorker plugin by a deriver, that is able to create TaskWorker plugins for each separate task queue.

The task queue can be defined via event "ECA processing queued task", in a similar way how render events already define blocks and extra fields. That event can be extended by two new options: One to enable task distribution, and one to either set a certain Cron processing time in seconds, or no cron processing time at all.

Remaining tasks

User interface changes

API changes

Data model changes

Edited by drupalbot
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information