معرفی Redis Scheduler – DEV Community

یک راه حل مقیاس پذیر برای وظایف زمان بندی شده در میکروسرویس ها
چرا Redis Scheduler؟
اگر تا به حال با مدیریت وظایف زمان بندی شده در میکروسرویس های خود مشکل داشته اید، تنها نیستید. روشهای سنتی مانند فواصل زمانی و کارهای کرون ممکن است راحت به نظر برسند، اما با چندین مشکل همراه هستند:
- مسائل مقیاس پذیری: کار های Cron به یک سرور متصل می شوند، که مقیاس بندی برنامه شما را به یک چالش تبدیل می کند.
- تنها نقاط شکست: اگر سرور شما از کار بیفتد، وظایف برنامه ریزی شده شما ممکن است از بین برود یا به تاخیر بیفتد.
- ناکارآمدی منابع: اجرای مکرر وظایف منابع غیر ضروری را مصرف می کند، حتی زمانی که چیزی برای پردازش وجود ندارد.
- مدیریت زمان پیچیده: مدیریت مناطق زمانی و تغییرات در روز می تواند مشکل و مستعد خطا باشد.
Redis Scheduler: A Better Approach
Redis Scheduler یک میکروسرویس است که برای رسیدگی به این چالش ها با استفاده از Redis به عنوان یک backend قابل اعتماد برای زمان بندی وظایف طراحی شده است. در اینجا نحوه کار آن آمده است:
- برنامه ریزی آسان کار: به سادگی یک درخواست با یک TTL (Time-To-Live) و یک URL webhook ارسال کنید و Redis Scheduler بقیه موارد را انجام خواهد داد.
- تلاش های مجدد خودکار: اگر یک وب هوک با شکست مواجه شود، Redis Scheduler به طور خودکار آن را بر اساس تنظیمات تلاش مجدد قابل تنظیم مجدد امتحان می کند.
- مقیاس پذیری افقی: Redis Scheduler می تواند در چندین نمونه اجرا شود و حجم کار را به طور موثر توزیع کند.
- پایدار و قابل اعتماد: وظایف در Redis ذخیره میشوند، و اطمینان حاصل میشود که حتی در صورت راهاندازی مجدد سرویس، باقی میمانند.
چگونه شروع کنیم
Redis Scheduler کانتینری شده است، و استقرار آن را با Docker یا Docker Compose آسان می کند. در اینجا یک شروع سریع است:
- تصویر داکر را بکشید:
docker pull ghcr.io/digital39999/redis-scheduler:latest
- Container را اجرا کنید:
docker run -d \
-e REDIS_URL="redis://your-redis-url:6379" \
-e API_AUTH="your-api-auth-token" \
-e PORT=8080 \
-e RETRIES=5 \
-e RETRY_TIME=60 \
-p 8080:8080 \
ghcr.io/digital39999/redis-scheduler:latest
-
یک کار را برنامه ریزی کنید: از
/schedule
نقطه پایانی برای ایجاد یک کار جدید که پس از TTL مشخص شده یک وب هوک را راه اندازی می کند.
curl -X POST http://localhost:8080/schedule \
-H "Authorization: Bearer your-api-auth-token" \
-H "Content-Type: application/json" \
-d '{
"webhook": "https://example.com/webhook",
"ttl": 120,
"data": {
"message": "Hello, World!"
}
}'
نتیجه گیری
Redis Scheduler یک راه حل مقیاس پذیر، قابل اعتماد و کارآمد برای مدیریت وظایف زمان بندی شده در میکروسرویس های شما ارائه می دهد. چه با تاخیرهای ساده و چه با گردش های کاری پیچیده سر و کار داشته باشید، Redis Scheduler به گونه ای طراحی شده است که زمان بندی کارها را آسان تر و قوی تر می کند.
برای جزئیات بیشتر، مخزن GitHub را بررسی کنید و از امروز شروع به ادغام Redis Scheduler در پروژه های خود کنید!