نود On Schedule در N8N
نود On Schedule یک تریگر (Trigger) برای اجرای خودکار ورکفلو در زمانهای مشخص است؛ دقیقاً زمانی که میخواهید کارهای تکراری مثل گزارشگیری روزانه، ارسال یادآوری هفتگی، همگامسازی دادهها یا مانیتورینگ سرویسها بدون دخالت دستی انجام شوند.
معرفی نود در N8N
کارکرد نود
On Schedule یک نقطه شروع زمانبندیشده برای ورکفلو است. با تنظیم زمان (هر دقیقه/ساعت/روز/هفته/ماه یا با الگوی دقیقتر)، n8n در آن لحظه تریگر را فعال میکند و اجرای ورکفلو را آغاز میکند.
دستهبندی نود
- Trigger (تریگر)
کاربرد اصلی و اهمیت در ورکفلوها
- حذف کارهای دستی و جلوگیری از فراموشی
- ایجاد روالهای منظم برای عملیاتها (Backup، گزارش، Sync، پاکسازی)
- پایهگذاری اتوماسیونهای زمانمحور در کنار نودهای Integrations مثل Google Sheets، Slack، Email، HTTP و…
موارد استفاده
سناریوهای واقعی و متداول
- گزارش روزانه فروش: هر روز ساعت 18:00 دادهها از دیتابیس خوانده شود و خلاصه به Slack ارسال شود.
- یادآوری پرداختها: هر هفته شنبهها لیست فاکتورهای سررسید را ایمیل کند.
- همگامسازی داده: هر 15 دقیقه اطلاعات CRM با Google Sheets یا Airtable سینک شود.
- پایش سرویسها: هر 5 دقیقه یک URL با HTTP Request چک شود و در صورت خطا هشدار ارسال شود.
- پاکسازی دورهای: هر شب فایلهای موقت یا دادههای قدیمی در S3/FTP پاکسازی شود.
ترکیب با نودهای دیگر برای ورکفلوهای عملی
- On Schedule → HTTP Request → IF → Slack برای مانیتورینگ API و هشدار.
- On Schedule → Google Sheets → Function/Code → Email برای گزارشگیری.
- On Schedule → PostgreSQL/MySQL → Merge → Notion برای بهروزرسانی داشبورد.
- On Schedule → Read Binary File → S3 → Telegram برای ارسال فایلهای دورهای.
پارامترها و تنظیمات
در نسخههای جدید n8n، نود On Schedule معمولاً چند حالت زمانبندی ارائه میدهد. نام دقیق گزینهها ممکن است بسته به نسخه کمی متفاوت باشد، اما مفاهیم و کاربردها ثابت هستند.
فهرست پارامترها (کامل و کاربردی)
- Mode / Schedule Type (نوع زمانبندی) | Type: Optionکاربرد: تعیین میکند تریگر با چه الگویی اجرا شود (مثل هر X دقیقه یا زمانهای مشخص در هفته).مثال عملی: انتخاب حالت Weekly برای اجرای شنبهها.
- Interval / Every (فاصله اجرا) | Type: Numberکاربرد: اجرای ورکفلو در یک بازه تکرارشونده (مثلاً هر 5 دقیقه یا هر 2 ساعت).مثال عملی: Every = 15 و Unit = Minutes برای اجرای هر 15 دقیقه.
- Unit (واحد زمان) | Type: Optionکاربرد: تعیین واحد Interval مثل Minutes, Hours, Days.مثال عملی: Unit = Hours برای اجرای دورهای ساعتی.
- At Time (ساعت اجرای دقیق) | Type: String/Timeکاربرد: اجرای روزانه/هفتگی در یک ساعت مشخص.مثال عملی: 08:30 برای ارسال گزارش صبحگاهی.
- Days of Week (روزهای هفته) | Type: Multi-Optionکاربرد: انتخاب روزهای اجرا در حالت Weekly.مثال عملی: Saturday + Monday برای اجرای دو بار در هفته.
- Day of Month (روز ماه) | Type: Number/Optionکاربرد: اجرای ماهانه در روز مشخص (مثلاً اول ماه).مثال عملی: Day = 1 برای تولید گزارش ماهانه در روز اول.
- Timezone (منطقه زمانی) | Type: Option/Stringکاربرد: تعیین میکند زمانبندی بر اساس کدام منطقه زمانی محاسبه شود.مثال عملی: Asia/Tehran برای اجرای دقیق مطابق ساعت ایران.
- Start / Active (فعالبودن) | Type: Boolean (در سطح Workflow/Node)کاربرد: اگر ورکفلو Active نباشد، هیچ اجرای زمانبندیشدهای رخ نمیدهد.مثال عملی: پس از تست، ورکفلو را Active کنید تا زمانبندی واقعی شروع شود.
نکات مهم هنگام پیکربندی
- Timezone را دقیق تنظیم کنید؛ اختلاف یک ساعت میتواند کل گزارشهای روزانه را جابهجا کند، مخصوصاً در سرورهایی که UTC هستند.
- تداخل با زمان اجرای طولانی: اگر ورکفلو شما طولانی اجرا میشود و زمانبندی فاصله کوتاه دارد (مثلاً هر 1 دقیقه)، احتمال همپوشانی اجراها وجود دارد. در این حالت باید کنترل همزمانی (concurrency) را از تنظیمات اجرایی n8n یا با منطق داخل ورکفلو مدیریت کنید.
- در محیط Production بهتر است زمانبندیهای حساس را در ساعات کمترافیک قرار دهید (مثلاً نیمهشب) تا فشار روی منابع کمتر شود.
- فرمت ساعت معمولاً 24 ساعته است (مثل 18:05). اگر فیلد بهصورت تایمپیکر باشد، با انتخاب مستقیم کمخطاتر است.
ورودیها و خروجیها
ورودی (Input)
نود On Schedule یک Trigger است و ورودی ندارد. این نود شروعکننده جریان داده در ورکفلو است.
خروجی (Output)
این نود هنگام اجرا یک آیتم (Item) تولید میکند که اطلاعات زمان اجرا را در خود دارد. بسته به نسخه n8n ممکن است نام فیلدها کمی متفاوت باشد، اما معمولاً شامل زمان فعلی و متادیتای اجرا است.
نمونه ساختار JSON خروجی
نمونهای از خروجی رایج که میتواند مبنای پردازش در نودهای بعدی باشد:
{ "json": { "trigger": "onSchedule", "timestamp": "2025-12-28T08:30:00.000Z", "timezone": "Asia/Tehran" }}
کاربرد عملی: میتوانید از timestamp برای نامگذاری فایل خروجی، ساخت گزارش روزانه، یا فیلتر دادهها بر اساس تاریخ استفاده کنید.
نکات پیشرفته و ترفندها
1) ساخت زمانبندیهای چندگانه در یک ورکفلو
اگر لازم دارید یک فرآیند هم روزانه اجرا شود و هم آخر هفته، دو راه دارید:
- دو ورکفلو جدا با On Schedule مستقل (سادهتر و قابل نگهداریتر)
- یک ورکفلو با دو Trigger مجزا (اگر نسخه شما اجازه چند Trigger را میدهد) و سپس ادغام مسیرها با Merge
2) جلوگیری از اجرای تکراری در پنجرههای زمانی حساس
برای کارهایی مثل ارسال پیام به مشتریان، بهتر است قبل از ارسال، یک کنترل تکراری بودن انجام دهید:
- ثبت آخرین زمان ارسال در Data Store / DB
- مقایسه timestamp فعلی با آخرین اجرا
- اگر کمتر از یک بازه مشخص بود، مسیر را متوقف کنید
3) اجرای شرطی بر اساس روز/ساعت با IF
حتی اگر زمانبندی کلی شما گسترده است (مثلاً هر ساعت)، میتوانید در نودهای بعدی شرط بگذارید فقط در زمانهای خاص ادامه دهد. مثال:
- On Schedule (هر 1 ساعت)
- Code/Function: استخراج ساعت از timestamp
- IF: فقط اگر ساعت بین 9 تا 18 بود → ادامه
4) بهینهسازی برای ورکفلوهای سنگین
- کارهای سنگین را به ساعات خلوت منتقل کنید.
- در صورت امکان دادهها را صفحهبندی (pagination) کنید و در چند مرحله پردازش کنید.
- برای APIها از Rate Limit پیروی کنید و بین درخواستها مکث (Wait) بگذارید.
محدودیتها و خطاها
محدودیتها
- وابستگی به فعال بودن Workflow: تا زمانی که ورکفلو Active نشود، زمانبندی اجرا نمیشود.
- وابستگی به در دسترس بودن سرویس n8n: اگر سرور خاموش باشد یا Workerها متوقف شوند، اجراها از دست میروند یا با تاخیر رخ میدهند (بسته به تنظیمات و معماری اجرا).
- دقت زمانبندی: اجرای دقیق ثانیهای تضمینشده نیست، مخصوصاً در سرورهای شلوغ یا با صف اجرا.
خطاهای رایج و راهحلها
- ورکفلو اجرا نمیشود
- بررسی کنید Workflow در حالت Active باشد.
- بررسی Timezone و زمان تعیینشده.
- لاگهای n8n و وضعیت Queue/Worker را بررسی کنید.
- اجراها همپوشانی دارند و خروجی تکراری تولید میشود
- فاصله زمانبندی را افزایش دهید.
- مکانیزم Lock با DB/Data Store پیادهسازی کنید.
- تنظیمات concurrency را در سطح n8n (در صورت استفاده از queue mode) بررسی کنید.
- تایم اشتباه (یک یا چند ساعت اختلاف)
- Timezone نود/ورکفلو را روی Asia/Tehran یا منطقه درست تنظیم کنید.
- Timezone سیستمعامل/کانتینر را نیز بررسی کنید، مخصوصاً در Docker.
ایده ها
- گزارش سلامت سایت: هر 10 دقیقه چند URL را چک کنید، وضعیت را در Google Sheet ثبت و در صورت Down شدن هشدار دهید.
- ارسال محتوای زمانبندیشده: هر روز ساعت 9 یک پیام آموزشی از Notion خوانده و در Telegram/Slack ارسال کنید.
- Sync مشتریان: هر شب مشتریان جدید را از CRM گرفته و به Mailchimp اضافه کنید.
- پاکسازی خودکار: هر هفته فایلهای قدیمی یک پوشه را در S3/FTP حذف و نتیجه را ایمیل کنید.
- جمعآوری داده رقبا: هر روز قیمتها را با HTTP Request دریافت، تغییرات را محاسبه و نتیجه را در Airtable ذخیره کنید.
