محرکها و کنشها
چه چیزی آن را آغاز میکند، چه میکند، و چگونه تصمیم میگیرد
سه پرسش، و هر گردش کاری روی این پلتفرم پاسخی به آنهاست. این صفحه واژگان است: راههایی که یک اجرا میتواند آغاز شود، کارهایی که یک گام میتواند انجام دهد، و قطعاتی که مسیر میان این دو را شکل میدهند.
محرکها
چهار راه برای آغاز یک اجرا
یک زمانبندی
هر ده دقیقه، هر دوشنبه ساعت هفت، اولین روز کاری ماه. در منطقهٔ زمانی که شما انتخاب میکنید بیان میشود، تا تغییر ساعتها یک حادثه تلقی نشود.
یک وبهوک
فروشگاه شما، CRM شما، سیستم صورتحساب شما، هر چیزی که بتواند درخواست HTTP بفرستد. تأیید امضا بهصورت پیشفرض فعال است و بار داده همراه با اجرا نگه داشته میشود.
رویدادی از دنیای بیرون
اعلام یک کنسرت، برنامهریزی یک مسابقه، زلزله، هشدار سیل، عبور از آستانهٔ کیفیت هوا، قطعی یک ارائهدهنده. بیش از ۱۷۵ منبع، که هر ده تا بیست دقیقه بهروزرسانی میشوند.
یک پایش، یا یک نفر
یک نقطهٔ پایانی، صندوق پستی یا پوشهای را زیر نظر بگیرید و با هر تغییری شروع کنید. یا آن را از کنسول بهصورت دستی آغاز کنید، چون گاهی این همان پاسخ صادقانه است.
برای هر چیز فقط یک اجرا. محرکی که برای یک رویداد زیربنایی دوبار فعال میشود — وبهوکی که فرستنده دوباره ارسال کرده، یا پایشی که همان ردیف را دوباره میبیند — یک اجرا آغاز میکند، نه دو. کلید حذف تکرار بر اساس هر چیزی است که آن چیز را شناسایی میکند، و وقتی ایدهٔ فرستنده دربارهٔ شناسه بدتر از ایدهٔ شماست، میتوانید آن کلید را خودتان تعیین کنید.
کنشها
گامهایی که کاری انجام میدهند
یک کنش چیزی را بیرون از اجرا تغییر میدهد: مینویسد، میفرستد، مبلغی را دریافت میکند، رزرو میکند، واکشی میکند یا بایگانی میکند. دو نوع است، و تفاوتشان در این است که مدل در کار هست یا نه.
کنشهای قطعی
به یک نقطهٔ پایانی HTTP فراخوانی بزنید. سیستمهای خودتان را بخوانید و در آنها بنویسید. شکل یک بار داده را تغییر دهید. چیزی را در دادههای مرجع جستوجو کنید. ایمیل، پیامک، اعلان فوری یا نامهٔ چاپی بفرستید. یک زمان رزرو پیشنهاد دهید. پرداختی دریافت کنید. یک پیوند کوتاه بسازید. تصویری را همراه با مجوزش واکشی کنید. یک ردیف، یک فایل، یک رکورد بنویسید.
ورودی یکسان، خروجی یکسان. اجرایشان هیچ هزینهای ندارد، و به همین دلیل توصیهٔ صادقانه این است که برای هر چیزی که واقعاً به قضاوت نیاز ندارد از آنها استفاده کنید.
کنشهای هوش مصنوعی
این پیام را دستهبندی کن. پیشنویس آن پاسخ را بنویس. یک رشتهٔ گفتوگو را به سه نکته خلاصه کن. فیلدها را از سندی بدون ساختار استخراج کن. با توجه به قاعدهای که به نثر نوشتهاید، میان گزینهها انتخاب کن. ترجمه کن، با حفظ لحن.
هر گام هوش مصنوعی شکل خروجی خود را اعلام میکند و پیش از ادامهٔ اجرا، خروجی در برابر همان شکل اعتبارسنجی میشود. اگر مدلی چیزی نادرست تولید کند، گام بهشکل تمیز شکست میخورد بهجای آنکه دوازده گام بعدی را آلوده کند.

چیزی رخ میدهد. سپس چیز درستِ بعدی رخ میدهد.
جریان: گامهایی که فقط به اجرا فکر میکنند
شرطها بر اساس یک مقدار انشعاب میسازند. هر دو مسیر همیشه تعریف شدهاند — شرطی که شاخهٔ else تعریفنشده داشته باشد رایجترین راهِ گمشدنِ بیسروصدای رکوردها در اتوماسیون است، بنابراین اینجا امکان رهاکردن آن وجود ندارد.
انتظارها یک اجرا را تا یک لحظه یا یک رویداد نگه میدارند. انتظار یک wake_at نوشتهشده روی خودِ اجراست، نه ردیفی در یک صف؛ به همین دلیل یک گردشکار میتواند ده هزار نفر را سه هفته نگه دارد بدون هیچ هزینهای و بدون آنکه کسی متوجه شود.
ساعات سکوت جلوگیری میکنند از رسیدن پیامهای خروجی در ساعت سه بامداد. اجرایی که در بازهٔ سکوت به گام ارسال برسد، تا بستهشدن بازه منتظر میماند. سطح اهمیت میتواند آن را عمداً لغو کند، برای هشدارهایی که قرار است افراد را بیدار کنند.
تقسیمها بخشی از اجراها را به مسیر A و بقیه را به مسیر B میفرستند، تا بتوانید دو خط موضوع، دو انتظار یا دو ترتیب را روی ترافیک واقعی با هم مقایسه کنید.
هدفها همان چیزی را نشانهگذاری میکنند که گردشکار برای آن ساخته شده بود. وقتی اجرایی به هدفش برسد همانجا متوقف میشود، هرچه در پاییندست باقی مانده باشد — مشتریای که خرید، یادآوری سوم خرید را دریافت نمیکند.
- ⚡راهاندازسبد خرید ۴۰ دقیقه بیتحرک مانده است. بر اساس شناسهٔ سبد، حذف تکرار شده است.
- ?شرطسبد خرید بالای ۱۵۰ زلوتی؟ بله — مسیر طولانیتر را میرویم.
- ⏸انتظاریک
wake_atروی اجرا. بدون ردیف صف، بدون هزینه. - Aتقسیم کنید۵۰/۵۰ روی خط موضوع. این اجرا گونهٔ A را گرفت.
- ✉ارسالایمیل با پیوند کوتاه، شمارش بازهدشتها به تفکیک گیرنده.
- ★هدفسفارش ثبت شد. اجرا همینجا متوقف میشود؛ یادآوری دوم هرگز ارسال نمیشود.
گامهایی که مدلی را فراخواندند: ۱گامهایی که هیچ هزینهای نداشتند: ۵
خطاها بخشی از جریاناند، نه استثنایی بر آن
گامی که شکست میخورد جایی برای رفتن دارد. تلاش مجدد با فاصلهگذاری تدریجی و سقفی برای تعداد دفعات. گرفتن یک مسیر جایگزین. متوقفکردن اجرا و ثبت آن جایی که یک انسان آن را ببیند. یا ادامهٔ بیتوجه، چون آن گام خاص اختیاری بود و شما ترجیح میدهید بیشترِ نتیجه را داشته باشید تا هیچکدام را.
پیشفرض برای گامی که با سیستم دیگری گفتوگو میکند، چند بار تلاش مجدد و سپس توقف است — چون سیستمی که ساعت ۰۹:۱۴ از کار افتاده معمولاً ساعت ۰۹:۱۹ بالا میآید، و چون اجرایی که متوقف شده راحتتر از اجرایی که نیمهکاره رخ داده قابل فهم است.
آنچه نمیتوانید بکنید: یک گام نمیتواند به گام قبلی بازگردد. گردشکار یک مسیر جهتدار است، نه برنامهای با دستور پرش. اگر کار شما واقعاً به حلقه نیاز دارد، درون یک گام روی یک فهرست تکرار کنید، یا بهازای هر مورد یک اجرا آغاز کنید — هر دو پشتیبانی میشوند و هر دو بعداً خواندنیتر از یک چرخهاند.