derp.queue – Task Queue¶
Queue client and typed models.
- class derp.queue.CeleryConfig[source]¶
Bases:
_StrictModelConfiguration for Celery task queue.
- model_config = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class derp.queue.CeleryQueueClient[source]¶
Bases:
QueueClientQueue client backed by Celery.
- __init__(config)[source]¶
- Parameters:
config (CeleryConfig)
- property app: Celery¶
Expose the underlying Celery app for worker-side task registration.
- async enqueue(task_name, payload=None, *, task_id=None, queue=None, delay=None)[source]¶
Enqueue a task. Returns a task ID.
- async get_status(task_id)[source]¶
Get the status of a task by ID.
- Parameters:
task_id (str)
- Return type:
- class derp.queue.QueueClient[source]¶
Bases:
ABCAsync producer-side queue client.
- abstractmethod async enqueue(task_name, payload=None, *, task_id=None, queue=None, delay=None)[source]¶
Enqueue a task. Returns a task ID.
- class derp.queue.QueueConfig[source]¶
Bases:
_StrictModelQueue configuration.
- celery: CeleryConfig | None¶
- vercel: VercelQueueConfig | None¶
- schedules: Sequence[ScheduleConfig]¶
- model_config = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- exception derp.queue.QueueNotConnectedError[source]¶
Bases:
QueueErrorRaised when queue client is used before connect().
- exception derp.queue.QueueProviderError[source]¶
Bases:
QueueErrorRaised when the queue backend returns an error.
- class derp.queue.Schedule[source]¶
Bases:
objectA recurring task schedule.
- type: ScheduleType¶
- class derp.queue.ScheduleConfig[source]¶
Bases:
_StrictModelA single recurring task schedule.
- model_config = {'extra': 'forbid'}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class derp.queue.ScheduleType[source]¶
Bases:
StrEnumType of recurring schedule.
- CRON = 'cron'¶
- INTERVAL = 'interval'¶
- __new__(value)¶
- class derp.queue.TaskState[source]¶
Bases:
StrEnumState of a queued task.
- PENDING = 'pending'¶
- STARTED = 'started'¶
- SUCCESS = 'success'¶
- FAILURE = 'failure'¶
- REVOKED = 'revoked'¶
- UNKNOWN = 'unknown'¶
- __new__(value)¶
- class derp.queue.VercelQueueClient[source]¶
Bases:
QueueClientQueue client backed by Vercel Queues (REST API).
- __init__(config)[source]¶
- Parameters:
config (VercelQueueConfig)
- async enqueue(task_name, payload=None, *, task_id=None, queue=None, delay=None)[source]¶
Enqueue a task. Returns a task ID.
- async get_status(task_id)[source]¶
Vercel queues do not expose per-message status.
- Parameters:
task_id (str)
- Return type: