Ce face hf jobs scheduled
hf jobs scheduled run creează un Job programat, cu aceleași opțiuni ca hf jobs run (flavor, env, secrete, timeout, volume etc.). Programul este unul dintre @annually, @yearly, @monthly, @weekly, @daily, @hourly sau o expresie CRON, de exemplu "0 9 * * 1" pentru luni la 9:00. hf jobs scheduled uv run face același lucru pentru un script UV; scriptul este fixat la conținutul de la creare.
--suspend creează Job-ul în pauză, iar --concurrency permite mai multe instanțe simultane. Job-urile programate nu au grup de rețea.
Administrare: ls (aliasuri list, ps; implicit ascunde pe cele suspendate), inspect, suspend și resume, reschedule (schimbă programul), trigger (rulează acum, fără să schimbe programul), labels și delete.
Sintaxă și opțiuni
| Opțiune / Parametru | Descriere |
|---|---|
SCHEDULE |
@annually, @yearly, @monthly, @weekly, @daily, @hourly sau expresie CRON. |
--suspend / --no-suspend |
Creează Job-ul suspendat. |
--concurrency / --no-concurrency |
Permite rulări simultane ale aceluiași Job. |
Opțiunile lui hf jobs run |
--flavor, -e, -s, --timeout, --attempts, -v, --name, -l, --expose, --dry-run etc. |
ls -a / --status [active|suspended] / -l / --name |
Filtre la listare. |
inspect SCHEDULED_JOB_IDS... |
Detalii. |
suspend / resume SCHEDULED_JOB_ID |
Pauză / reluare. |
reschedule SCHEDULED_JOB_ID SCHEDULE |
Programul nou. |
trigger SCHEDULED_JOB_ID |
Rulare imediată. |
labels SCHEDULED_JOB_ID --name / -l / --clear |
Nume și etichete. |
delete SCHEDULED_JOB_ID |
Șterge Job-ul programat. |
--token TEXT |
Token de acces (User Access Token) creat în huggingface.co/settings/tokens. Implicit se folosește tokenul salvat de hf auth login. |
Exemple practice
Exemplul 1: În fiecare oră
hf jobs scheduled run @hourly --name hourly-task python:3.12 python -c 'print("This runs every hour!")'
Exemplul 2: La fiecare 5 minute (CRON)
hf jobs scheduled run "*/5 * * * *" python:3.12 python -c 'print("This runs every 5 minutes!")'
Exemplul 3: Script UV zilnic, cu limită de 4 ore
hf jobs scheduled uv run @daily --timeout 4h daily_task.py
Exemplul 4: Mutare pe luni la 9:00
hf jobs scheduled reschedule SCHEDULED_JOB_ID "0 9 * * 1"
Exemplul 5: Rulare imediată
hf jobs scheduled trigger SCHEDULED_JOB_ID
Greșeli frecvente și bune practici
- Nu pui expresia CRON între ghilimele. Shell-ul interpretează
*; scrie"0 9 * * 1". - Modifici scriptul de la URL și aștepți ca Job-ul programat să-l preia. Scriptul este fixat la creare; recreează Job-ul programat.
- Folosești
triggerca să schimbi ora.triggerrulează o dată acum; ora se schimbă cureschedule.