انتقل إلى المحتوى
use-cases / byo-cron-per-tenant / hero
BYO cron / جداول لكل مستأجر

اسمح لعملائك بإحضار جدول cron الخاص بهم.

عملاؤك يكتبون تعبير cron. أنت ترسله بـ POST إلى crontab حاويتهم. لا طابور مشترك للمشاركة العادلة، ولا فاصل أدنى للفرض، ولا تذكرة دعم عن "لماذا لم تعمل مهمتي يوم الإثنين الذروة."

اقرأ مستندات Cron API
use-cases / byo-cron-per-tenant / mechanism

العميل يكتب في واجهتك. أنت ترسل POST إلى حاويته.

صفحة الإعدادات لديك تعرض حقل إدخال. حاوية المستأجر الخاصة به تكشف Cron API. الإرسال يُعيد توجيه POST واحداً. لا مجدوِل عام، ولا منطق تصفية لكل مستأجر، ولا حدّ "100 مهمة كحدّ أقصى عبر جميع العملاء."

خاصتك-backend → tenant-container
POST /users/root/entries
// إرسال النموذج يُمرّر تعبير العميل دون تغيير
POST https://acme-cron.hoody.com/users/root/entries
Content-Type: application/json

{
  "schedule": "0 9 * * 1-5",
  "command": "/jobs/sync_crm.sh",
  "comment": "Sync Salesforce contacts",
  "enabled": true
}
tenant-container → خاصتك-backend
201 Created
HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "sch_8a3f1c",
  "schedule": "0 9 * * 1-5",
  "next_run": "2026-05-04T09:00:00Z",
  "enabled": true
}

// الجدول الآن في crontab هذا المستأجر ولا في غيره

خدمة Hoody Cron تعمل داخل كل حاوية مستأجر مع إدخالات مُدارة وعزل لكل مستخدم. الجدول يعيش حيث يجري العمل.

use-cases / byo-cron-per-tenant / powers

ما يمنحك إياه BYO cron مما لا يستطيع المجدوِل المشترك تقديمه.

عندما يعيش الجدول بجانب العمل، تتغيّر قواعد الجدولة متعددة المستأجرين. القيود محلية. نصف قطر الانفجار محلي. الميزات محلية.

لا طابور مشترك

لا ضريبة تطابر عادل

لا توجد بِركة خيوط عامة للتنافس عليها. أكثر مستأجريك إلحاحاً يعمل كل دقيقة ولا يُجوّع المستأجرين الهادئين أبداً — ليسوا على نفس crontab.

خدمة ذاتية

العملاء يخدمون أنفسهم، أنت لا تتحقق

تتوقّف عن أن تكون البوّاب لـ "هل */1 * * * * مسموح به لطبقتك؟" حاويتهم، cron الخاص بهم، فاتورة CPU الخاصة بهم. صندوق الدعم لديك يفرغ.

مرتبط بالحاوية

الجدول يُشحن مع المستأجر

خذ لقطة لحاوية المستأجر، تأخذ لقطة لـ crontab. تراجع، استعد، تفرّع — الجداول تذهب معه. لا حالة مجدوِل خارجية للمزامنة.

use-cases / byo-cron-per-tenant / compare

مجدوِل متعدد المستأجرين مشترك مقابل cron مرتبط بالحاوية.

الفرق يظهر في ثلاثة أماكن: تجربة العميل، حِمل الدعم لديك، ومساحة سطح الهندسة.

محورمجدوِل مشتركBYO container cron
ما يمكن للعميل اختياره
حد أدنى 5 دقائق، أيام الأسبوع فقط، لا تشغيلات متزامنةبوابات الطبقات، قواعد المشاركة العادلة، تأجيلات ساعات الذروة
أي تعبير cron من خمسة حقول تستطيع حاويتهم التعامل معه*/1 * * * * إن أرادوه؛ CPU الخاص بهم يدفع له
أين يحدث التحقق
كودك، قبل الحفظ، مقابل نموذج طابور عامregex + فحص السعة + فحص الطبقة + فحص التداخل
cron daemon الحاوية يحلّل التعبيرصياغة فقط؛ السعة هي سعة حاوية واحدة، لا الأسطول
نصف قطر انفجار الفشل
مهمة بطيئة لمستأجر واحد توقف الطابور للجميعحوادث الجار الصاخب، تنبيهات على عمق الطابور
cron حاوية واحدة يتأخر مستأجراً واحداًعزل على مستوى الـ kernel؛ بقية الأسطول لا يلاحظ

نسخة المجدوِل المشترك من هذه الميزة هي بحر من التحفظات. نسخة BYO هي صندوق إدخال من خمسة حقول.

use-cases / byo-cron-per-tenant / support

ما يختفي عندما يصبح cron لكل مستأجر.

ثلاثة أرقام تتغير في اليوم الذي تتوقف فيه عن تشغيل طابور عام. كل واحد يتطابق مع ميزة لم تعد مضطراً لكتابتها أو تشغيلها.

  1. قواعد تحقق للصيانة0

    لا حدّ أدنى للفاصل ببوابات الطبقات، ولا حدّ أقصى للمهام لكل مستأجر، ولا أزرار مشاركة عادلة. الحاوية هي الحدّ.

  2. POST لكل إنشاء جدول

    العميل يكتب، أنت تُمرّر، الحاوية تحلّل. إرسال صفحة الإعدادات هو استدعاء REST واحد، لا تنسيق.

  3. حقول يملكها العميل5

    minute · hour · day-of-month · month · day-of-week. بالإضافة إلى الماكروهات (@hourly, @daily). POSIX قياسي، لا DSL خاصة بك.

الأرقام تعكس النموذج المرتبط بالحاوية BYO — إدخالات cron الفعلية تتدرج مع CPU كل حاوية وخطة العميل.

use-cases / byo-cron-per-tenant / punchline

تعبير cron الخاص بالعميل هو ملك العميل، ليس لك أن تتحقق منه مقابل طابور عام.

مجدوِل مشتركBYO cron لكل مستأجر
قبلif (tier !== 'enterprise' && interval < 5min) reject()ضريبة التحقق: كل عميل دفع ثمن أسوأ عميل
بعدPOST /users/root/entries → 201 Createdالجدول يعيش في حاويتهم؛ CPU الخاص بهم، قواعدهم
اطّلع على Cron API
use-cases / byo-cron-per-tenant / replaces

ما يستبدله هذا.

قطع البنية التحتية التي يُنحّيها bring-your-own cron المرتبط بالحاوية بهدوء.

  • مجدوِلات تعدد مستأجرين مشتركةلا طابور عام للمشاركة العادلة
  • Quartz مع تصفية المستأجرينلا عمود tenant_id على كل صف مهمة
  • واجهات cron-as-config مخصصةالعملاء يكتبون، الحاوية تحلّل
  • Airflow مُدار من الموردلا خدمة DAG لتعبير من خمسة حقول
  • Sidekiq مشترك مع تحديد سرعةلا محدّد سرعة عام عبر المستأجرين
  • BullMQ مع طوابير مستأجرينلا Redis لمراقبته لكل عميل
use-cases / byo-cron-per-tenant / cta

توقّف عن أن تكون بوّاب جدول شخص آخر. سلّم لهم حقل cron، وسلّم العمل لحاويتهم.

اقرأ المستندات
use-cases / byo-cron-per-tenant / related

اقرأ الآخرين