Aller au contenu
TYPEDébloqué
ÉTAPEProduction
DIFFICULTÉModéré
MÉTIERAutomatiser une tâche
POURFondateurs solo
POURDevs backend
SERVICESCron
SERVICESBrowser
SERVICESSQLite
SERVICESFiles
POURQUOI HOODYHTTP-natif
POURQUOI HOODYÉconomie des conteneurs
TYPEDébloqué
ÉTAPEProduction
DIFFICULTÉModéré
MÉTIERAutomatiser une tâche
POURFondateurs solo
POURDevs backend
SERVICESCron
SERVICESBrowser
SERVICESSQLite
SERVICESFiles
POURQUOI HOODYHTTP-natif
POURQUOI HOODYÉconomie des conteneurs
TYPEDébloqué
ÉTAPEProduction
DIFFICULTÉModéré
MÉTIERAutomatiser une tâche
POURFondateurs solo
POURDevs backend
SERVICESCron
SERVICESBrowser
SERVICESSQLite
SERVICESFiles
POURQUOI HOODYHTTP-natif
POURQUOI HOODYÉconomie des conteneurs
TYPEDébloqué
ÉTAPEProduction
DIFFICULTÉModéré
MÉTIERAutomatiser une tâche
POURFondateurs solo
POURDevs backend
SERVICESCron
SERVICESBrowser
SERVICESSQLite
SERVICESFiles
POURQUOI HOODYHTTP-natif
POURQUOI HOODYÉconomie des conteneurs
CRON · UN CRONTAB · UN CONTENEUR

Trois cadences, un conteneur, sur un serveur à tarif fixe

Hourly browser scrape, daily SQLite digest, weekly file archive. Three rhythms nest cleanly in one crontab — they're just three rows of `* * * * *` pointing at three scripts. No scheduler service, no job queue, no worker pool.

Lire la doc cron
facturation
ce mois-ci
tarif fixeserveur / mois
  • s'exécute dans un seul serveur
  • trois cadences
  • zéro service de planification
cpu conteneur · 24 h
−24 h → maintenant
base inactive~4%
des pics uniquement aux 3 déclenchements — plat entre eux

Un seul PUT écrit toute la planification

Le service Hoody Cron expose le crontab brut comme une ressource REST. Faites un PUT du fichier une seule fois et le noyau l'exécute pour toujours. Trois lignes, trois scripts — chacun un one-liner qui parle déjà HTTP.

request · /users/root/crontab
PUT · crontab brut
# Replace the entire crontab in one call.
PUT /users/root/crontab
Content-Type: text/plain

@hourly  bash /scripts/scrape.sh
0 9 * * * bash /scripts/digest.sh
0 0 * * 0 bash /scripts/archive.sh

HTTP/1.1 204 No Content
le noyau fait le reste
scripts · /scripts/*.sh
exec · trois corps
# scrape.sh — every hour, fan a screenshot into sqlite
curl -sS https://browser.containers.hoody.com/screenshot \
  --data-urlencode "url=https://store.hoody.com/p/123" | sqlite3 /data/prices.db \
  "INSERT INTO rows VALUES (?, ?, ?)"

# digest.sh — at 9am, compute deltas and pipe the digest
sqlite3 /data/prices.db < /scripts/digest.sql \
  > /tmp/digest.txt && curl -T /tmp/digest.txt \
  https://pipe.hoody.com/api/v1/pipe/digest

# archive.sh — sunday at midnight, dump and store
sqlite3 /data/prices.db ".dump" | curl -T - \
  https://files.containers.hoody.com/archives/$(date +%Y-w%V).sql

Trois scripts. Trois URL qu'ils savent déjà appeler. Une requête PUT pour installer la planification. Il n'y a aucun service de planification devant — le crond du noyau lit le fichier que vous avez écrit et l'exécute.

Trois rythmes, trois scripts

Chaque cadence repose sur une seule expression à 5 champs et une seule ligne shell. Aucune n'a besoin de connaître les deux autres — elles partagent simplement un disque et une horloge.

HOURLY · SCRAPE

Aspirer les pages concurrentes dans SQLite

hoody-browser capture une liste d'URLs produits. Chaque ligne atterrit directement dans une table SQLite sur le volume du conteneur. Pas de pool de workers de scraping — la ligne cron est le pool de workers.

@hourly bash /scripts/scrape.sh
DAILY · DIGEST

Calculer les deltas, envoyer un récapitulatif

À 9 h, le script de récapitulatif lit les dernières 24 heures de lignes, calcule les deltas de prix et curl le récapitulatif vers une URL pipe. Votre boîte mail / dashboard lit depuis le même pipe.

0 9 * * * bash /scripts/digest.sh
WEEKLY · ARCHIVE

Vider la semaine dans une URL files

Sunday at midnight the archive script `.dump`s SQLite, names the file by ISO week, and PUTs it to hoody-files. Old rows get pruned. The volume stays small forever.

0 0 * * 0 bash /scripts/archive.sh

Ce que trois lignes débloquent

Trois cadences dans un conteneur, ce n'est pas un bricolage — c'est la forme naturelle de cron. La plateforme vous a déjà donné un planificateur ; vous avez juste cessé de le payer trois fois.

STORAGE

Les trois scripts partagent un seul disque

Le scrape horaire écrit les lignes que lit le récapitulatif quotidien. Le récapitulatif quotidien écrit les deltas que vide l'archive hebdomadaire. Aucun IPC entre eux — juste trois processus sur le même volume.

OPERATIONS

Un conteneur à redémarrer, pas trois

Quand vous redéployez, vous redéployez une seule image. Quand vous consultez les logs, vous suivez un seul fichier de log. Quand le disque se remplit, il se remplit une fois. Le rayon d'impact d'une cadence vaut celui de n'importe quelle autre.

ECONOMICS

Un serveur au forfait, sans couche de planification

Lambda/EventBridge facturent à l'invocation ; ECS Scheduled Tasks facture le cluster toujours actif. Sur Hoody, tout ça tourne dans le serveur au forfait que vous payez déjà. Trois cadences ne coûtent pas plus qu'une.

Comment vous l'utilisez vraiment

Le crontab est un fichier. Le fichier a une URL. Tout ce que vous feriez au fichier, vous pouvez le faire en HTTP.

  1. ADD A FOURTH

    POST /users/root/entries

    Créez une entrée managée avec un UUID et un commentaire optionnel. L'API injecte la ligne dans le crontab pour vous et vous donne un handle pour l'activer, la désactiver ou la supprimer plus tard.

  2. DISABLE WITHOUT DELETING

    PATCH enabled: false

    Mettez une cadence en pause pendant un incident sans perdre sa définition. Réactivez-la quand l'incident est clos. La ligne reste dans le fichier, commentée comme managed-disabled.

  3. LISEZ LE FICHIER

    GET /users/root/crontab

    Récupérez le crontab brut à tout moment, avec toutes les entrées managées. Diffez-le contre votre repo. Envoyez-le dans votre gestion de versions. Cron est un fichier, et désormais le fichier est une URL.

Endpoints de l'API Hoody Cron : CRUD d'entrées gérées plus lecture/écriture complète du crontab brut par utilisateur. Expressions standard à 5 champs et macros (@hourly, @daily, @weekly).

Ce que vous ne payez pas

Trois chiffres tirés du fonctionnement réel. Les chiffres proviennent des garanties de l'API Hoody Cron et du modèle de serveur à tarif fixe — pas de benchmarks inventés.

  1. SERVER

    Les trois cadences tournent dans le même serveur au forfait. Le serveur d'entrée commence à $29/mois ; les lignes cron supplémentaires ne coûtent rien de plus.

  2. CRON LINES

    Un @hourly, un quotidien à 9 h, un hebdomadaire le dimanche. Trois lignes dans /users/root/crontab. Tout l'orchestrateur tient dans une seule requête PUT.

  3. EXTRA SERVICES0

    Pas de Lambda, pas d'EventBridge, pas de Sidekiq, pas de scheduler Airflow, pas de définition de tâche planifiée ECS. L'API HTTP du cron EST le scheduler.

Selon l'API Hoody Cron : entrées gérées via CRUD JSON, lecture/écriture du crontab brut, expiration automatique via expires_at, et isolation du crontab par utilisateur. Macros @hourly / @daily / @weekly acceptées en plus des expressions à 5 champs.

Trois cadences, trois lignes cron, un conteneur sur un serveur à tarif fixe à partir de 29 $/mois.

HORAIRE@hourly bash /scripts/scrape.shprix concurrents → sqlite
QUOTIDIEN0 9 * * * bash /scripts/digest.sh9 h — agréger les deltas
HEBDOMADAIRE0 0 * * 0 bash /scripts/archive.shdimanche — parquet vers fichiers
avant · trois lambdas, trois facturesaprès · un serveur à tarif fixe, de nombreuses lignes cron
Lire la doc cron

Ce que cela remplace

Trois Lambdas, trois GitHub Actions, trois tâches planifiées ECS — les stacks réflexes habituels pour trois cadences. Chacun vous facture à la cadence ou à l'invocation ; Hoody facture le serveur.

  • trois fonctions AWS LambdaFacturation à l'invocation pour ce qui n'est que trois scripts shell sur un disque
  • trois plannings GitHub ActionsTout un runner CI démarré pour une requête SQLite de 5 secondes
  • trois workers SidekiqUn pool de workers adossé à Redis pour des jobs qui ne partagent que le disque
  • three serverless functions / three billsTrois déploiements, trois logs, trois compteurs de facturation pour la même logique
  • orchestration multi-services (Airflow, Step Functions)Un moteur de DAG pour un graphe sans aucune arête entre ses trois nœuds
  • trois tâches planifiées ECSTrois définitions de tâches, trois rôles IAM, trois règles CloudWatch

Arrêtez de louer un planificateur. Écrivez la planification dans un fichier. Le conteneur exécute déjà cron — trois lignes plus tard, vous avez livré tout le pipeline.

Lire la doc cron

Lis les autres