# Programar trabajos

Programa y gestiona trabajos que se ejecutarán en la infraestructura de HF.

Use `hf jobs uv run ` o `hf jobs run` con un horario de `@annually`, `@yearly`, `@monthly`, `@weekly`, `@daily`, `@hourly` o una expresión de horario CRON (p. ej., `"0 9 * * 1"` para las 9:00 de cada lunes):

```bash
# Schedule a job that runs every hour
>>> hf jobs scheduled uv run @hourly python -c "print('This runs every hour!')"

# Use the CRON syntax
>>> hf jobs scheduled uv run "*/5 * * * *" python -c "print('This runs every five minutes!')"

# Schedule with GPU
>>> hf jobs scheduled uv run --flavor a10g-small --with torch @hourly python -c 'import torch; print(f"This code ran with the following GPU: {torch.cuda.get_device_name()}")'

# Schedule with a Docker image
>>> hf jobs scheduled run @hourly python:3.12 python -c "print('This runs every hour!')"

# Schedule a Python script with a label
>>> hf jobs scheduled uv run --label fine-tuning @hourly my_script.py

# Schedule a named job (names show up in the UI and do not have to be unique)
>>> hf jobs scheduled run --name hourly-task @hourly python:3.12 python -c "print('This runs every hour!')"
```

Use los mismos parámetros que `hf jobs uv run` y `hf jobs run` para pasar variables de entorno, secretos, timeout, etiquetas, etc.

Gestione los trabajos programados con `hf jobs scheduled ps`, `hf jobs scheduled inspect`, `hf jobs scheduled suspend`, `hf jobs scheduled resume`, `hf jobs scheduled reschedule`, `hf jobs scheduled trigger` y `hf jobs scheduled delete`:

```python
# List your active scheduled jobs
>>> hf jobs scheduled ps

# List all your scheduled jobs (including suspended jobs)
>>> hf jobs scheduled ps -a

# Inspect the status of a job
>>> hf jobs scheduled inspect <scheduled-job-id>

# Suspend (pause) a scheduled job
>>> hf jobs scheduled suspend <scheduled-job-id>

# Resume a scheduled job
>>> hf jobs scheduled resume <scheduled-job-id>

# Change when a scheduled job runs (here, 9 AM every Monday)
>>> hf jobs scheduled reschedule <scheduled-job-id> "0 9 * * 1"

# Trigger a scheduled job to run right now (does not change the schedule)
>>> hf jobs scheduled trigger <scheduled-job-id>

# Delete a scheduled job
>>> hf jobs scheduled delete <scheduled-job-id>
```

