Worker یک container است که همیشه روشن میماند ولی آدرسِ عمومی و پورتِ HTTP ندارد. برای کارهایی است که کسی از بیرون صدایش نمیزند.
مناسب برای#
- مصرفکنندهی صف (مثلاً job queue روی Redis)
- بات تلگرام یا دیسکورد با long polling
- کارهای دورهای که خودِ برنامه زمانبندیشان میکند
اگر به آدرسِ وب یا webhook نیاز دارید، اپ بسازید.
ساخت در حالتِ ساده#
- سرویسِ جدید → Worker.
- منبع را انتخاب کنید:
- مخزنِ گیتِ عمومی (پیشفرض): آدرسِ مخزن و برنچ. Worker مثلِ اپ با تشخیصِ خودکار build میشود، فقط آدرس ندارد.
- ایمیجِ داکر: نامِ ایمیج، مثلاً
myorg/worker:1.0.0.
- متغیرهای محیطی را همانجا وارد کنید. قبل از اولین build اعمال میشوند و بعداً هم از صفحهی Worker عوض میشوند.
- پک را انتخاب کنید و بسازید. صفحهی Worker آخرین دیپلوی را با وضعیتش نشان میدهد و اگر شکست بخورد، علتِ احتمالی را هم میگوید.
ساخت در حالتِ گیک#
- SERVICES → + NEW SERVICE → Worker.
- IMAGE & NAME: نام و Docker Image، مثلاً
myorg/worker:1.0.0. - SIZE: پک (برای شروع Nano).
- REVIEW → CREATE. وضعیت و لاگ در ویزارد زنده نمایش داده میشود.
در حالتِ گیک Worker فعلاً فقط از Docker Image ساخته میشود. برای Worker از گیت، موقتاً به حالتِ ساده بروید (حالت ساده و حالت گیک).
نکتهها#
- Worker از ریپوی گیتِ عمومی یا Docker Image عمومی ساخته میشود. ریپوی خصوصی برای Worker هنوز پشتیبانی نمیشود.
- لاگها روی کارتِ Worker هستند؛ اگر پردازش crash کند، وضعیت به ERROR میرود. وضعیت، لاگ و شِل
- هزینه مثلِ اپ است: ساعتی، با پکهای اپ. با STOP، هزینهی CPU و RAM صفر میشود.
