# Run background processes and cron jobs

Keep Laravel queue workers and other long-running commands running for a PHP site, and run commands on a schedule.

## Before you start

- A PHP site in Nuvlo. Queue workers are available for Laravel sites.
- Permission to manage sites in your Nuvlo account.

## Step 1: Open the PHP tab

Open the site from [Sites](https://app.nuvlo.dev/dashboard/sites), click the **PHP** tab and scroll to **Background processes and cron**. Everything here runs as the site's own user and is restarted automatically on every deploy and after a crash.

![The Background processes and cron card with sections for queue workers, daemons and cron jobs](https://app.nuvlo.dev/docs/shots/site-processes--card.webp)

## Step 2: Add queue workers

Laravel only. Under **Queue workers**, click **Add worker**. Without a worker, jobs sent to a queue wait until one runs.

| Field | What it does |
| --- | --- |
| **Connection** | The Laravel queue connection, `default` unless you use another. |
| **Queues** | Queue names, comma-separated, in priority order. |
| **Processes** | How many copies of the worker run, 1–10. |
| **Timeout (s)** | How long one job may run. |
| **Tries** | How often a failing job is attempted. |
| **Memory (MB)** | Memory limit of the worker. |

## Step 3: Add daemons

Under **Daemons**, click **Add daemon** for any other long-running command, such as a websocket server. Enter the **Command**, for example `php artisan reverb:start`, and how many **Processes** run (1–10).

## Step 4: Add cron jobs

Under **Cron jobs**, click **Add job**. Enter the **Schedule** in cron syntax, such as `0 * * * *` for every hour, or a shortcut such as `@daily`, and the **Command**, for example `php scripts/cleanup.php`. Jobs run in the live release.

For Laravel's own scheduler, use the **Scheduled tasks** switch in the PHP settings instead. See [Change PHP and routing settings](https://app.nuvlo.dev/docs/site-runtime-settings).

## Step 5: Save the processes

Click **Save processes and cron**. Saving replaces the whole set. On a deployed site they start right away (**Saved and started on the server**); otherwise the first deploy starts them. Click **Discard changes** to undo edits you haven't saved.

## Limits

- Up to 10 queue workers, 10 daemons and 20 cron jobs per site.
- Up to 10 processes per worker or daemon.

Server-wide scheduled tasks are covered in [Cron jobs](https://app.nuvlo.dev/docs/cron-jobs).

---
Source: https://app.nuvlo.dev/docs/site-processes
