---
title: "Running workers"
url: https://develop.sentry.dev/backend/application-domains/tasks/running-workers/
---

# Running workers

##### Note

See [operating tasks](https://develop.sentry.dev/self-hosted/tasks.md) for how to operate workers and brokers in self-hosted.

## [Running a worker](https://develop.sentry.dev/backend/application-domains/tasks/running-workers.md#running-a-worker)

Workers are responsible for fetching tasks, executing them and reporting completion status back to a taskbroker. Before you can run a worker, you'll need to [start a taskbroker](https://develop.sentry.dev/backend/application-domains/tasks/running-workers.md#running-taskbroker%5D). There are a few options for running workers:

```bash
# Run a worker in the foreground
sentry run taskworker

# Run a worker as part of the devserver
sentry devserver --workers

# Foreground the worker from a devservices mode like `ingest`
devservices foreground taskworker
```

## [Running a task scheduler](https://develop.sentry.dev/backend/application-domains/tasks/running-workers.md#running-a-task-scheduler)

The task-scheduler is responsible for reading the task schedules from `settings.TASKWORKER_SCHEDULES` and spawning tasks as schedules become due.

```bash
sentry run taskworker-scheduler
```

## [Running taskbroker](https://develop.sentry.dev/backend/application-domains/tasks/running-workers.md#running-taskbroker)

Taskbroker can be started as a background service with `devservices`

```bash
devservices up --mode=taskbroker
```
