کار سنگین را از مسیر درخواست بیرون ببرید.
فانکشن یا برنامهٔ شما پیام را در صف میگذارد و فوراً پاسخ میدهد. یک فانکشن، یک آدرس HTTPS یا برنامهٔ خودتان پیامها را میگیرد، با تلاش دوباره، صف مرده برای آنچه شکست خورد و زمانبندی برای کارهای تکراری.
آنچه میگیرید
env.JOBS و API
با send یا sendBatch از هر فانکشن یا برنامه، یا با API از هر جایی پیام بفرستید، با تأخیر دلخواه و شناسهٔ تکرار تا یک پیام دو بار ثبت نشود. بدنه هر مقدار JSON تا ۱۲۸ کیلوبایت.
فانکشن مصرفکننده
هندلر queue(batch, env) یک فانکشن پیامها را در دستههایی تا ۱۰۰ تایی میگیرد. اندازهٔ دسته، زمان انتظار و همزمانی با شماست.
تحویل به یک آدرس
هر پیام با POST به هر آدرس HTTPS فرستاده میشود، امضاشده با هدرهای Standard Webhooks تا گیرنده با هر کتابخانهٔ Standard Webhooks آن را بررسی کند. پاسخ 2xx یعنی تایید.
برداشتن از بیرون
برنامهای بیرون از پلتفرم پیامها را با HTTPS برمیدارد (pull) و پس از کار تایید میکند (ack)؛ پیام تاییدنشده پس از مهلت دوباره در دسترس است.
تلاش دوباره با فاصلهٔ فزاینده
پیامی که پردازش نشد دوباره تحویل میشود و فاصله هر بار دو برابر میشود، تا سقفی که برای صف تعیین میکنید (تا ۱۰۰ بار).
صف مرده
بعد از آخرین تلاش، پیام با دلیلش به صف مرده میرود. آن را ببینید، دوباره به صف برگردانید یا پاک کنید.
زمانبندی
یک عبارت cron با منطقهٔ زمانی (پیشفرض تهران) هر بار پیامی به یک صف، یک فانکشن یا یک آدرس میفرستد.
تحویل دستکم یکبار
پیام پیش از آنکه send پاسخ دهد ذخیرهٔ ماندگار شده است؛ از کار افتادن یک سرور آن را گم نمیکند.
شاخصها و نگاه به پیامها
پیامهای منتظر، در حال پردازش و با تأخیر، سن قدیمیترین، نرخ فرستادن، تحویل و شکست. پیامها را ببینید، صف را متوقف یا خالی کنید.
یک صف، سه راه مصرف
یک فانکشن، یک آدرس HTTPS یا برنامهٔ خودتان با pull. پاسخ عادی یعنی تایید؛ خطا یعنی تلاش دوباره با فاصلهٔ فزاینده.
cloudhost queues create jobs-failed
cloudhost queues create jobs --dead-letter-queue jobs-failed --max-retries 5
cloudhost queues consumer jobs worker --batch-size 10
cloudhost schedules create "0 3 * * *" --queue jobs --body '{"task":"nightly"}'به ازای هر عملیات
فرستادن، تحویل و تایید (یا تلاش دوباره) هر کدام یک عملیات تا ۶۴ کیلوبایت است؛ پیامی که بار اول موفق شود سه عملیات است. پلن رایگان روزی ۱۰٬۰۰۰ عملیات دارد و پس از آن تا فردا رد میشود؛ پلن حرفهای ماهی ۱٬۰۰۰٬۰۰۰ عملیات همراه دارد و بیشتر از آن به ازای هر میلیون عملیات از کیف پول کم میشود.
محدودیتها
| رایگان | حرفهای | |
|---|---|---|
| صف در هر تیم | ۱۰ | ۱۰٬۰۰۰ |
| اندازهٔ پیام | ۱۲۸ کیلوبایت | ۱۲۸ کیلوبایت |
| نگهداری پیام | ۱ روز | تا ۱۴ روز |
| پیامهای منتظر در هر صف | ۱ گیگابایت | ۲۵ گیگابایت |
| تأخیر تحویل | تا ۱ ساعت | تا ۷ روز |
| زمانبندی | ۱۰ | ۱٬۰۰۰ |
| عملیات | ۱۰٬۰۰۰ در روز، سپس رد | ۱٬۰۰۰٬۰۰۰ در ماه همراه پلن، سپس به ازای مصرف |
پرسشهای رایج
پیامهایی که تایید نشدهاند بعد از مکثی که هر بار دو برابر میشود دوباره تحویل میشوند. بعد از آخرین تلاش به صف مرده میروند، یا اگر صف مردهای نباشد کنار گذاشته و شمرده میشوند. برای آدرسها هر پاسخ غیر 2xx یا نرسیدن پاسخ در مهلت، تلاش دوباره است.
بله، تحویل دستکم یکبار است. کد مصرفکننده را طوری بنویسید که اجرای دوباره ضرری نداشته باشد.
هر تحویل هدرهای webhook-id، webhook-timestamp و webhook-signature را دارد، امضای HMAC با سکرتی که هنگام تعیین آدرس یک بار نشان داده میشود (whsec_). هر کتابخانهٔ Standard Webhooks آن را بررسی میکند. سکرت را هر وقت خواستید عوض کنید.
در پلن رایگان ۱۰ صف و ۱۰ زمانبندی، در پلن حرفهای ۱۰٬۰۰۰ صف و ۱٬۰۰۰ زمانبندی. جدول محدودیتهای بالا و راهنما جزئیات را دارند.
اولین صف را ایجاد کنید
یک دستور برای صف، یک خط برای فرستادن.
فعلاً ثبتنام با کد دعوت است. اگر کد دارید، همین حالا حساب ایجاد کنید.
ثبتنام باکد ایمیلکد پیامکی