queues
Task queue services.
These are the class that implement the interface to the queue managers.
The abstract TaskQueueService class is the interface each class has to implement.
RQTaskQueueService implements the service with Redis Queue.
CeleryTaskQueueService implements the service with Celery (TBD)
- class eztaskmanager.services.queues.TaskQueueService[source]
Abstract base class for managing task queues.
- exception eztaskmanager.services.queues.TaskQueueException[source]
Dedicated exception for TaskQueue classes.
- class eztaskmanager.services.queues.RQTaskQueueService[source]
A subclass of TaskQueueService that manages tasks using RQ (Redis Queue).
- queue
The default RQ queue.
- Type:
Queue
- - add(task, at=None)
Enqueues a task to be executed either immediately or at a specific time.
- - remove(task)
Cancels a task if it is currently in the queue.
- add(task: Task)[source]
Add the task to the Redis queue.
If the task already has a scheduled_job_id, the existing job will be cancelled before creating a new one to prevent duplicate scheduling. This ensures idempotency when re-scheduling tasks after restarts.
- Parameters:
task – The task to be added.
- Returns:
The job created for the task, either scheduled or enqueued for immediate execution.
- Raises:
TaskQueueException – If there is an error while launching the task.
- eztaskmanager.services.queues.available_service
alias of
RQTaskQueueService