> ## Documentation Index
> Fetch the complete documentation index at: /docs/llms.txt
> Use this file to discover all available pages before exploring further.

# task_worker

# `prefect.task_worker`

## Functions

### `should_try_to_read_parameters` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L68](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L68)</sup>

```python theme={null}
should_try_to_read_parameters(task: Task[P, R], task_run: TaskRun) -> bool
```

Determines whether a task run should read parameters from the result store.

### `create_status_server` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L427](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L427)</sup>

```python theme={null}
create_status_server(task_worker: TaskWorker) -> FastAPI
```

### `aserve` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L452](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L452)</sup>

```python theme={null}
aserve(*tasks: Task[P, R]) -> None
```

Serve the provided tasks so that their runs may be submitted to
and executed in the engine. Tasks do not need to be within a flow run context to be
submitted. You must `.submit` the same task object that you pass to `serve`.

**Args:**

* `- tasks`: A list of tasks to serve. When a scheduled task run is found for a
  given task, the task run will be submitted to the engine for execution.
* `- limit`: The maximum number of tasks that can be run concurrently. Defaults to 10.
  Pass `None` to remove the limit.
* `- status_server_port`: An optional port on which to start an HTTP server
  exposing status information about the task worker. If not provided, no
  status server will run.
* `- timeout`: If provided, the task worker will exit after the given number of
  seconds. Defaults to None, meaning the task worker will run indefinitely.

### `serve` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L555](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L555)</sup>

```python theme={null}
serve(*tasks: Task[P, R]) -> None
```

Serve the provided tasks so that their runs may be submitted to
and executed in the engine. Tasks do not need to be within a flow run context to be
submitted. You must `.submit` the same task object that you pass to `serve`.

**Args:**

* `- tasks`: A list of tasks to serve. When a scheduled task run is found for a
  given task, the task run will be submitted to the engine for execution.
* `- limit`: The maximum number of tasks that can be run concurrently. Defaults to 10.
  Pass `None` to remove the limit.
* `- status_server_port`: An optional port on which to start an HTTP server
  exposing status information about the task worker. If not provided, no
  status server will run.
* `- timeout`: If provided, the task worker will exit after the given number of
  seconds. Defaults to None, meaning the task worker will run indefinitely.

### `store_parameters` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L604](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L604)</sup>

```python theme={null}
store_parameters(result_store: ResultStore, identifier: UUID, parameters: dict[str, Any]) -> None
```

Store parameters for a task run in the result store.

**Args:**

* `result_store`: The result store to store the parameters in.
* `identifier`: The identifier of the task run.
* `parameters`: The parameters to store.

### `read_parameters` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L633](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L633)</sup>

```python theme={null}
read_parameters(result_store: ResultStore, identifier: UUID) -> dict[str, Any]
```

Read parameters for a task run from the result store.

**Args:**

* `result_store`: The result store to read the parameters from.
* `identifier`: The identifier of the task run.

**Returns:**

* The parameters for the task run.

## Classes

### `StopTaskWorker` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L62](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L62)</sup>

Raised when the task worker is stopped.

### `TaskWorker` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L80](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L80)</sup>

This class is responsible for serving tasks that may be executed in the background
by a task runner via the traditional engine machinery.

When `start()` is called, the task worker will open a websocket connection to a
server-side queue of scheduled task runs. When a scheduled task run is found, the
scheduled task run is submitted to the engine for execution with a minimal `EngineContext`
so that the task run can be governed by orchestration rules.

**Args:**

* `- tasks`: A list of tasks to serve. These tasks will be submitted to the engine
  when a scheduled task run is found.
* `- limit`: The maximum number of tasks that can be run concurrently. Defaults to 10.
  Pass `None` to remove the limit.

**Methods:**

#### `astart` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L177](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L177)</sup>

```python theme={null}
astart(self, timeout: Optional[float] = None) -> None
```

Starts a task worker, which runs the tasks provided in the constructor.

**Args:**

* `timeout`: If provided, the task worker will exit after the given number of
  seconds. Defaults to None, meaning the task worker will run indefinitely.

#### `astop` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L219](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L219)</sup>

```python theme={null}
astop(self) -> None
```

Stops the task worker's polling cycle.

#### `available_tasks` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L165](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L165)</sup>

```python theme={null}
available_tasks(self) -> Optional[int]
```

#### `client_id` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L141](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L141)</sup>

```python theme={null}
client_id(self) -> str
```

#### `current_tasks` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L157](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L157)</sup>

```python theme={null}
current_tasks(self) -> Optional[int]
```

#### `execute_task_run` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L399](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L399)</sup>

```python theme={null}
execute_task_run(self, task_run: TaskRun) -> None
```

Execute a task run in the task worker.

#### `handle_sigterm` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L168](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L168)</sup>

```python theme={null}
handle_sigterm(self, signum: int, frame: object) -> None
```

Shuts down the task worker when a SIGTERM is received.

#### `limit` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L153](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L153)</sup>

```python theme={null}
limit(self) -> Optional[int]
```

#### `start` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L207](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L207)</sup>

```python theme={null}
start(self, timeout: Optional[float] = None) -> None
```

Starts a task worker, which runs the tasks provided in the constructor.

**Args:**

* `timeout`: If provided, the task worker will exit after the given number of
  seconds. Defaults to None, meaning the task worker will run indefinitely.

#### `started` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L149](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L149)</sup>

```python theme={null}
started(self) -> bool
```

#### `started_at` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L145](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L145)</sup>

```python theme={null}
started_at(self) -> Optional[DateTime]
```

#### `stop` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task\_worker.py#L233](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/task_worker.py#L233)</sup>

```python theme={null}
stop(self) -> None
```

Stops the task worker's polling cycle.
