Cron job یک دستور را در زمانهای مشخص داخلِ container اجرا میکند؛ مثلاً پاککردنِ نشستهای قدیمی، ارسالِ گزارش یا همگامسازیِ داده. برای اپ، Worker و سرویسهای آماده در دسترس است.
ساخت یک کرونجاب#
- کارتِ منبع را باز کنید و بخشِ CRON JOBS را پیدا کنید.
- NEW JOB را بزنید.
- این موارد را پر کنید:
- Name: نامی برای شناختن کار (تا ۶۴ کاراکتر).
- Command: دستوری که اجرا میشود (تا ۲۰۰۰ کاراکتر)، مثلاً
node scripts/cleanup.js. - Container: اگر منبع چند container دارد (مثلاً یک سرویس با چند بخش)، کدام container دستور را اجرا کند.
- Schedule: زمانبندی؛ هر چند دقیقه، هر ساعت، روزانه یا هفتگی.
- Timeout: مهلتِ اجرا بین ۱۰ ثانیه تا ۱ ساعت.
- ذخیره کنید.
محدودیتها#
| مورد | سقف |
|---|---|
| کوچکترین فاصلهی اجرا | هر ۵ دقیقه |
| تعدادِ کرونجاب برای هر منبع | ۱۰ |
زمانها به وقتِ تهران نمایش داده میشوند.
اجرا و نتیجه#
- کار در زمانِ مقرر اجرا میشود و خروجیِ آن در لاگِ کرونجاب ثبت میشود.
- اگر کار از Timeout بگذرد، متوقف و خطا ثبت میشود.
- با خطای مکرر، هشدار به کانالهایی که در تنظیماتِ هشدار فعال کردهاید فرستاده میشود.
نکتهها#
- کرونجاب داخلِ همان container اجرا میشود؛ پس به ابزارهایی که در image هستند دسترسی دارد. اگر دستور در image نیست، آن را به image اضافه کنید.
- کارهای طولانی را کوچک کنید یا به Worker بسپارید.
- کارِ مهم را طوری بنویسید که اگر دوبار اجرا شد، مشکلی پیش نیاید (idempotent).
- کرونجابها با DEPLOY یا ریاستارت هم سرِ جایشان هستند؛ تغییرِ کدِ خودِ کار را در image یا کد بدهید، نه در شِل.
