2026 : Mac Mini loué 7×24 — matrice Celery (worker longue durée) versus éventail cron : concurrence, ACK, backoff et seuils disque

Lecture : 10 min

« Sur un Mac Mini Apple Silicon loué en 7×24, une file Celery partage le SSD APFS avec le courtier, les journaux et les artefacts : le bon réglage du broker, de la prélecture et des ACK évite les bulles de latence, tandis qu’un cron mal verrouillé multiplie les écritures concurrentes sur la même base. »

Public : workers Python asynchrones sur un Mini loué. Livrable : tableau seuils (URL file, prefetch, recyclage, limites, backoff), matrice cron/launchd, disque, FAQ. Liens : planification 7×24, FAQ APFS, cron watchdog, achat sans compte.

Trois freins quand les gabarits « cloud » heurtent un hôte unique

  1. Prélecture. worker_prefetch_multiplier élevé ⇒ tâches longues coincées sur un enfant, créneau retardé.
  2. Cron. Sans flock / jeton ⇒ doubles écritures base ou résultats.
  3. ACK. Effets non idempotents + acquittement précoce ⇒ échecs invisibles après restart ou OOM.

Sur macOS, privilégiez launchd pour redémarrer proprement les workers après mise à jour système, gardez le courtier hors processus web quand c’est possible, et documentez le TMPDIR utilisé par les tâches qui écrivent de gros fichiers temporaires : un chemin sur volume saturé fait échouer des jobs autrement sains.

Tableau des URL de file et seuils Celery opérables

Celery 5 + Redis ou RabbitMQ ; caler sur cœurs réels. Les URL sont des formes, pas des secrets versionnés.

Paramètre / URL Exemple ou palier de départ Note ACK / sûreté Mini loué
CELERY_BROKER_URL redis://…/0 ; amqp://…// ; WAN rediss:// vhost / index séparés ; rotation secrets Volume dédié si broker local
CELERY_RESULT_BACKEND redis://…/1, TTL court Base ≠ broker Surveiller clés APFS
broker_transport_options (visibilité / prélèvement) 3×–6× la p99 Court ⇒ dup ; long ⇒ blocage ffmpeg/GPU : haut
worker_prefetch_multiplier 1 CPU long ; 2–4 micro I/O acks_late + idempotence Évite bulle disque
task_acks_late + task_reject_on_worker_lost Si relançable Baux / verrous + recyclage
worker_max_tasks_per_child 200–2000 froid vs RSS nuit calme
worker_max_memory_per_child 60–70 % budget RAM (Ko) anti-swap si Redis local
task_soft_time_limit / task_time_limit soft 90 % SLA ; hard +30–60 s < visibilité GPU
Backoff / retries 2–5 s base, cap ~2 min, jitter 20 % max 5 essais auto voir planif

Concurrence, accusés de réception et politique de retry

worker_concurrencycœurs physiques pour le CPU ; pools I/O seulement après profil réel sur votre Mini loué. Isoler les files bruyantes par tenant ou par route évite qu’une charge empoisonnée ne monopolise le disque et le broker partagés.

  • Alerte si profondeur > 10× régime sur 2 polls.
  • rate_limit + disjoncteur sur API externes.
  • Reconnexion broker : backoff, pas de boucle serrée la nuit.

Checklist disque, inode et backend de résultats

TMP, result backend et journaux workers partagent le même APFS que sauvegardes et instantanés : au-delà d’une simple alerte « disque plein », définissez des garde-fous enqueue sur l’espace libre et les inodes avant d’accepter de nouveaux lots, comme vous le feriez pour une file distante saturée.

Indicateur Seuil indicatif Action
Espace libre APFS jaune ~20 % ; rouge ~10 % pause enqueue, purge
Broker local (AOF / données) ~2 Go marge broker local quota / volume
Journaux worker / inode logs ~200 Mo ; inode >80 % rotate / archive

Matrice : worker Celery résident versus éventail cron

Trancher selon durée médiane, tolérance au chevauchement et besoin de fairness entre files. Les workers offrent une consommation continue et des hooks de métriques homogènes ; le cron reste attractif lorsque chaque tranche est courte et que vous acceptez un peu plus de latence de démarrage à froid entre deux lancements.

Profil Worker Celery longue durée Fan-out cron / launchd
Long (> min) prefetch 1, acks_late, time limits checkpoints
Micro-tranches files dédiées, prefetch launchd décalé
Sans overlap singleton / locks flock

Six gestes pour une file 7×24 stable sur Mini loué

  1. p99 ⇒ visibilité + soft limit + 20 %.
  2. BROKER_URL hors git ; rotation à rebuild.
  3. acks_late, prefetch 1 jobs lourds, cap retries/file.
  4. max_tasks_per_child + RAM ; recycler nuit backup.
  5. Alertes disque, inode, TMPDIR, backend résultats.
  6. Test trimestriel : kill worker mid-task ⇒ redelivery OK.

FAQ

Workers permanents ou éventail cron sur un Mac Mini loué ?
Workers : fairness, retries, métriques, jobs longs. Cron : tranches courtes, isolation launchd, plus de churn.
Le préfacteur un est-il toujours optimal ?
Défaut CPU long = 1. Monter prefetch seulement avec acks_late + idempotence.
Pourquoi recycler avec worker_max_tasks_per_child sur macOS ?
Fuites natives / fds : recycler 200–2000 tâches évite reboot quotidien du loué.

Synthèse. Repères : prefetch 1 + acks_late sur CPU long ; max_tasks_per_child 200–2000 ; disque jaune ~20 % libre, rouge ~10 %. Louer un Mac Mini dédié clarifie files, ACK et marge SSD pour broker/logs. Accueil, tarifs, aide, achat sans compte.

Choisissez un nœud Mac pour Celery et cron 7×24

Mini Apple Silicon pour files Python et garde-fous disque. Accueil, tarifs, aide, achat sans compte, blog.

Mac Mini loué pour workers longue durée : achat, aide, blog.

Louer un Mini pour Celery 7×24