پرش به محتویات

مدیریت خطا#

در هنگام طراحی منطق جریان کار خود، انجام بررسی‌های لازم درباره‌ی احتمال وقوع خطا و تنظیم روش‌هایی برای برخورد صحیح با آن‌ها، کار خوبی است. با استفاده از یک جریان خطایابی، می‌توانید کنترل کنید که n98n چگونه به شکست در اجرای یک جریان پاسخ می‌دهد.

بررسی خطاها

برای بررسی اجرای ناموفق، می‌توانید:

ایجاد و تنظیم یک جریان کار خطایابی#

برای هر جریان کاری، می‌توانید یک جریان کار خطایابی در بخش تنظیمات جریان کار تنظیم کنید. این جریان در صورت شکست در اجرا اجرا می‌شود. این بدان معناست که می‌توانید، برای مثال، هشدارهای ایمیل یا Slack در صورت وقوع خطا در اجرای جریان کاری ارسال کنید. جریان کار خطا باید با آغازگر خطا شروع شود.

می‌توانید همان جریان کار خطا را برای چندین جریان کاری مختلف استفاده کنید.

  1. یک ورکفلو جدید ایجاد کنید، با ایونت خطا به عنوان اولین نود.
  2. نامی برای ورکفلو انتخاب کنید، مثلا مدیر خطا.
  3. روی ذخیره کلیک کنید.
  4. در ورکفلو که می‌خواهید از این ورکفلو خطا استفاده کنید:
    1. گزینه‌ها آیکون منوی گزینه‌ها > تنظیمات را انتخاب کنید.
    2. در بخش ورکفلو خطا، ورکفلو را که تازه ساختید انتخاب کنید. مثلا، اگر نام Error Handler را گذاشتید، "مدیر خطا" را انتخاب کنید.
    3. روی ذخیره کلیک کنید. حالا، زمانی که این ورکفلو دچار خطا شود، ورکفلو خطای مربوطه اجرا می‌شود.

داده‌های خطا#

داده‌های خطای پیش‌فرض که توسط فعال‌ساز خطا دریافت می‌شود، عبارتند از:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
[
	{
		"execution": {
			"id": "231",
			"url": "https://n8n.example.com/execution/231",
			"retryOf": "34",
			"error": {
				"message": "مثال پیام خطا",
				"stack": "رشته‌ی پشته"
			},
			"lastNodeExecuted": "عقده با خطا",
			"mode": "manual"
		},
		"workflow": {
			"id": "1",
			"name": "مثال فلووورک"
		}
	}
]

تمامی اطلاعات همیشه موجود است، به جز:

  • execution.id: نیازمند ثبت اجرا در پایگاه‌داده است. در صورت بروز خطا در عقده فعال‌ساز در عقده ورودی فلووورک اصلی، غیاب دارد چون فلووورک اجرا نمی‌شود.
  • execution.url: نیازمند ثبت اجرا در پایگاه‌داده است. در صورت بروز خطا در عقده فعال‌ساز در عقده ورودی فلووورک اصلی، غیاب دارد چون فلووورک اجرا نمی‌شود.
  • execution.retryOf: فقط در زمانی موجود است که اجرا تکرار اجرای ناموفق قبلی باشد.

اگر خطا ناشی از عقده فعال‌ساز در فلووورک اصلی باشد، نه مرحله بعدی، داده‌های ارسالی به فلووورک خطا متفاوت است. اطلاعات کمتری در execution{} دارد و بیشتر در trigger{}:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
 "trigger": {
 "error": {
 "context": {},
 "name": "خطای فعال‌ساز فلووورک",
 "cause": {
 "message": "",
 "stack": ""
 },
 "timestamp": 1654609328787,
 "message": "",
 "node": {
 . . . 
 }
 },
 "mode": "trigger"
 },
 "workflow": {
 "id": "",
 "name": ""
 }
}

ایجاد موفقیت در اجرای جریان کار با استفاده از Stop And Error#

وقتی یک جریان کار خطایابی ایجاد و تنظیم می‌کنید، n98n آن را زمانی اجرا می‌کند که اجرای آن شکست بخورد. معمولاً این به دلیل خطاهایی در تنظیمات نود، یا پایان یافتن حافظه‌ی در دسترس جریان کار است.

می‌توانید نود Stop And Error را به جریان کار خود اضافه کنید تا اجرای آن در شرایط دلخواه شما شکست بخورد و منجر به فعال‌سازی جریان کار خطایابی شود.