Executor¶
- class chancy.executors.base.ConcurrentExecutor(worker: Worker, queue: Queue)[source]¶
Bases:
Executor
,ABC
Base class for executors based off of the concurrent.futures.Executor class with common functionality.
- class chancy.executors.base.Executor(worker: Worker, queue: Queue)[source]¶
Bases:
ABC
The base class for all executors.
Executors are responsible for managing the execution of jobs after they’ve been retrieved from a queue.
See
ProcessExecutor
andAsyncExecutor
for examples of built-in executors.- abstract async cancel(ref: Reference)[source]¶
Attempt to cancel a running job.
It’s not guaranteed that the job will be cancelled, as it may have already completed by the time this method is called or the executor may not support cancellation.
- Parameters:
ref – The reference to the job to cancel.
- static get_function_and_kwargs(job: QueuedJob) tuple[Callable, dict] [source]¶
Finds the function which should be executed for the given job and returns its keyword arguments.
- Parameters:
job – The job instance to get the function and arguments for.
- Returns:
A tuple containing the function and its keyword arguments.
- async on_job_completed(*, job: QueuedJob, exc: Exception | None = None, result: Any = None)[source]¶
Called when a job has completed.
This method should be called by the executor when a job has completed execution. It will update the job’s state in the queue and handle retries if necessary.
- Parameters:
job – The job that has completed.
exc – The exception that was raised during execution, if any.
result – The result of the job, if any.