
ستون حاوية على خادم واحد
صندوق معادن عارية واحد يشغل عشرات إلى مئات حاويات Hoody. يجعل KSM و BTRFS dedup التكلفة الإضافية قريبة من الصفر.
كشط متصفح كل ساعة، خلاصة SQLite يومية، أرشفة ملفات أسبوعية. ثلاثة إيقاعات تتداخل بنظافة في crontab واحد — إنها مجرد ثلاثة صفوف من `* * * * *` تشير إلى ثلاثة سكربتات. لا خدمة جدولة، ولا طابور مهام، ولا تجمّع عمّال.
crontab واحد · ثلاثة إيقاعات · نفس الحاوية
خدمة Hoody Cron تكشف ملف crontab الخام كمورد REST. أرسل PUT للملف مرة، ويشغّله الـ kernel للأبد. ثلاثة أسطر، ثلاثة سكربتات — كل سكربت سطر واحد يتحدث HTTP بالفعل.
# استبدل crontab بأكمله في استدعاء واحد.
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# scrape.sh — كل ساعة، أرسل لقطة شاشة إلى 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 — في 9 صباحاً، احسب الفروقات وأرسل الخلاصة
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 — الأحد منتصف الليل، فرّغ وخزّن
sqlite3 /data/prices.db ".dump" | curl -T - \
https://files.containers.hoody.com/archives/$(date +%Y-w%V).sqlثلاثة سكربتات. ثلاثة عناوين URL يعرفون كيفية استدعائها. طلب PUT واحد لتثبيت الجدول. لا توجد خدمة جدولة أمام هذا — crond الخاص بالـ kernel يقرأ الملف الذي كتبته ويُشغّله.
كل إيقاع يحتوي تعبيراً واحداً من خمسة حقول وسطر shell واحد خلفه. لا أحد منها يحتاج لمعرفة الآخرَين — يتشاركون فقط قرصاً وساعة.
hoody-browser يلتقط لقطات شاشة لقائمة من عناوين URL للمنتجات. كل صف يذهب مباشرة إلى جدول SQLite على وحدة تخزين الحاوية. لا تجمّع عمّال كشط — سطر cron هو تجمّع العمّال.
في 9 صباحاً سكربت الخلاصة يقرأ صفوف آخر 24 ساعة، يحسب فروق الأسعار، ويُرسل الخلاصة عبر curl إلى عنوان URL لـ pipe. صندوق بريدك / لوحتك يقرأ من الـ pipe نفسه.
الأحد منتصف الليل سكربت الأرشيف يُجري `.dump` لـ SQLite، يُسمّي الملف بأسبوع ISO، ويُرسله بـ PUT إلى hoody-files. الصفوف القديمة تُقلَّم. الحجم يبقى صغيراً للأبد.
ثلاثة إيقاعات في حاوية واحدة ليست خدعة — إنها الشكل الطبيعي لـ cron. المنصة أعطتك مجدوِلاً بالفعل؛ أنت فقط توقّفت عن الدفع له ثلاث مرات.
الكشط الساعي يكتب الصفوف التي تقرأها الخلاصة اليومية. الخلاصة اليومية تكتب الفروقات التي يفرّغها الأرشيف الأسبوعي. لا IPC بينها — إنها مجرد ثلاث عمليات على نفس وحدة التخزين.
عندما تُعيد النشر، تُعيد نشر صورة واحدة. عندما تتفقّد السجلات، تتبع ملف سجل واحد. عندما يمتلئ القرص، يمتلئ مرة. نصف قطر الانفجار لأي إيقاع هو نفسه لأي إيقاع آخر.
Lambda/EventBridge يفوتران لكل استدعاء؛ ECS Scheduled Tasks تفوتر العنقود الدائم التشغيل. على Hoody ذلك يعمل بداخل خادم السعر الثابت الذي تدفع ثمنه بالفعل. ثلاثة إيقاعات لا تكلّف أكثر من واحد.
ملف crontab هو ملف. للملف عنوان URL. أي شيء كنت ستفعله بالملف، يمكنك فعله عبر HTTP.
أنشئ إدخالاً مُداراً مع UUID وتعليق اختياري. الـ API يحقن السطر في crontab نيابةً عنك ويعطيك مقبضاً لتفعيله أو تعطيله أو حذفه لاحقاً.
أوقف إيقاعاً مؤقتاً أثناء حادث دون فقدان تعريفه. أعِده عند إغلاق الحادث. السطر يبقى في الملف، مُعلَّقاً كـ managed-disabled.
احصل على crontab الخام في أي وقت، بما في ذلك جميع الإدخالات المُدارة. قارنه بمستودعك. أرسله عبر pipe إلى التحكم بالإصدار. cron هو ملف، والآن الملف عنوان URL.
نقاط النهاية من Hoody Cron API: CRUD للإدخالات المُدارة بالإضافة إلى قراءة/كتابة كاملة لـ crontab الخام لكل مستخدم. تعابير قياسية من خمسة حقول وماكروهات (@hourly, @daily, @weekly).
ثلاثة أرقام من الميكانيكا الفعلية. الأرقام تأتي من ضمانات Hoody Cron API ونموذج السعر الثابت للخادم — لا معايير مُختلَقة.
الإيقاعات الثلاثة كلها تعمل بداخل نفس خادم السعر الثابت. خادم الدخول يبدأ عند 29 دولاراً/الشهر؛ أسطر cron إضافية لا تضيف أي رسم إضافي.
@hourly واحد، يومي عند 9، أسبوعي يوم الأحد. ثلاثة أسطر في /users/root/crontab. المنسّق بأكمله يتسع في طلب PUT واحد.
لا Lambda، ولا EventBridge، ولا Sidekiq، ولا مجدوِل Airflow، ولا تعريف ECS scheduled task. واجهة HTTP API لـ cron هي المجدوِل.
وفقاً لـ Hoody Cron API: إدخالات مُدارة عبر JSON CRUD، قراءة/كتابة لـ crontab الخام، انتهاء تلقائي عبر expires_at، وعزل crontab لكل مستخدم. الماكروهات @hourly / @daily / @weekly مقبولة إلى جانب التعابير ذات الخمسة حقول.
ثلاثة إيقاعات، ثلاثة أسطر cron، حاوية واحدة على خادم بسعر ثابت يبدأ عند 29 دولاراً/الشهر.
ثلاث Lambdas، ثلاث GitHub Actions، ثلاث ECS scheduled tasks — الأكوام القياسية التي تلجأ إليها لثلاثة إيقاعات. كل واحدة تفوترك لكل إيقاع أو استدعاء؛ Hoody تفوترك للخادم.
توقّف عن استئجار مجدوِل. اكتب الجدول في ملف. الحاوية تشغّل cron بالفعل — ثلاثة أسطر لاحقاً، تكون قد شحنت خط الأنابيب بأكمله.