BackgroundTaskManager#

class BackgroundTaskManager[source]#

Bases: QObject

Attributes

BackgroundTaskManager.running_tasks

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

BackgroundTaskManager.task_completed

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

BackgroundTaskManager.task_failed

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

BackgroundTaskManager.task_message

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

BackgroundTaskManager.task_output

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

BackgroundTaskManager.task_progress

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

BackgroundTaskManager.task_queued

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

BackgroundTaskManager.task_started

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

BackgroundTaskManager.task_warning

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

Methods

BackgroundTaskManager.cancel_task(task_id)

Cancel a task if possible.

BackgroundTaskManager.clear_finished_tasks()

Remove finished tasks from tracking.

BackgroundTaskManager.get_task_output(task_id)

Get accumulated stdout/stderr for a task.

BackgroundTaskManager.instance()

BackgroundTaskManager.submit_io_task(name, func)

Submit a thread-backed I/O task.

BackgroundTaskManager.submit_task(name, func)

Submit a single task to the queue.

BackgroundTaskManager.submit_task_batch(tasks)

Submit batch of tasks with optional concurrency limit.

cancel_task(task_id)[source]#

Cancel a task if possible.

Parameters:
task_idstr

The task identifier.

Returns:
bool

True if the task was cancelled, False if it’s already running.

clear_finished_tasks()[source]#

Remove finished tasks from tracking.

Returns:
list

List of removed task IDs.

get_task_output(task_id)[source]#

Get accumulated stdout/stderr for a task.

Works for both running and completed tasks.

Parameters:
task_idstr

The task identifier.

Returns:
Dict[str, str]

Dictionary with ‘stdout’ and ‘stderr’ keys.

submit_io_task(name, func, callback=None, batch_id=None, args=(), kwargs=None)[source]#

Submit a thread-backed I/O task.

submit_task(name, func, callback=None, batch_id=None, args=(), kwargs=None)[source]#

Submit a single task to the queue.

Parameters:
namestr

Name of the task.

funcCallable

Function to execute.

callbackCallable, optional

Callback function to execute on completion.

batch_idstr, optional

Existing batch ID to add tasks to. If None, creates new batch.

args: tuple, optional

Args to pass to func.

kwargs: dict, optional

Kwargs to pass to func.

submit_task_batch(tasks, max_concurrent=None, batch_id=None)[source]#

Submit batch of tasks with optional concurrency limit.

Parameters:
taskslist of dict
Each dict: {“name”: str, “func”: callable, “args”: tuple,

“kwargs”: dict, “callback”: callable}

max_concurrentint, optional

Max tasks from this batch running simultaneously. If None, no limit (uses global worker limit).

batch_idstr, optional

Existing batch ID to add tasks to. If None, creates new batch.

Returns:
str

Batch ID for tracking