وصف المشكلة/الخطأ/السؤال
ما هي رسالة الخطأ (إن وجدت)؟
يرجى مشاركة سير العمل الخاص بك
(حدّد العقد على لوحتك واستخدم اختصارات لوحة المفاتيح CMD+C/CTRL+C و CMD+V/CTRL+V لنسخ ولصق سير العمل.)
مشاركة المخرجات التي أرجعتها العقدة الأخيرة
معلومات عن إعداد n8n الخاص بك
- إصدار n8n:
- قاعدة البيانات (الافتراضية: SQLite):
- إعداد n8n EXECUTIONS_PROCESS (الافتراضي: own, main):
- تشغيل n8n عبر (Docker, npm, n8n cloud, desktop app):
- نظام التشغيل:
@Wey89_Gmail هذا يعني في الغالب أن نفس رمز البوت نشط في أكثر من مشغل Telegram واحد، لذلك تقوم كل نسخة بمعالجة نفس التحديث. 3x = نشط في 3 أماكن. تحقق من وجود سير عمل مكرر/منسوخ، أو نسخة اختبار وإنتاج نشطتان معاً، أو مثيل n8n آخر يستخدم نفس البوت، وأوقف النسخ الإضافية. Telegram يسمح بمشغل واحد فقط نشط لكل بوت، بمجرد وجود واحد فقط ستتوقف النسخ المكررة.
مشغِّل Telegram الذي ينطلق 3 مرات لكل رسالة يكاد يكون دائمًا ناتجًا عن أحد سببين:
-
أكثر من مستهلك واحد متصل برمز البوت نفسه. يسمح Telegram برسالة واحدة فقط نشطة لكل بوت — إما الاستقصاء (getUpdates) أو webhook واحد، وليس كلاهما أبدًا، وليس عبر عدة مثيلات. إذا تم استخدام رمز البوت نفسه في سير عمل آخر أو مثيل n8n آخر، أو كان هناك webhook معلقة من تفعيل سابق، فإن Telegram يسلم نفس التحديث لكل واحد منها → نسخ مكررة.
تحقق منها: استدعِ طريقة getWebhookInfo في Telegram برمز البوت الخاص بك — فهي توضح ما إذا كانت webhook محددة حاليًا بالإضافة إلى عدد التحديثات المعلقة. إذا كنت تستخدم مشغِّل n8n Telegram (الذي يستقصي)، فتأكد من عدم تعيين أي webhook (استخدم deleteWebhook لحذف واحدة قديمة)، وتأكد من أن الرمز لا يكون نشطًا في سير عمل أو مثيل ثاني.
-
Telegram تعيد المحاولة لأنها لم تحصل على 200 سريعة. إذا لم يعترف المشغِّل في غضون المهلة الزمنية لـ Telegram، فسترسل Telegram نفس التحديث مجددًا — ستراه غالبًا يصل 2-3 مرات. يحدث هذا عندما يعمل العمل الثقيل قبل إرسال الاستجابة. الحل: اعترف فورًا وأوكل الخطوات البطيئة (رد أولاً، ثم قم بعمل LLM/API، أو ادفعه إلى طابور). ثلاث محاولات إعادة هي توقيع إعادة محاولة Telegram الكلاسيكي.
كيفية التمييز بينهما: إذا أظهر getWebhookInfo webhook محددة بينما تستقصي أيضًا، فهو #1. إذا كانت المكررات بفاصل بضع ثوان وكان سير العمل الخاص بك بطيئًا، فهو #2.
الحل الذي يوقف المكررات بغض النظر عن السبب: أضف حماية إلغاء التكرار مباشرة بعد المشغِّل — قم بتخزين كل update_id أو message_id من Telegram وتخطِّ إذا كنت قد عالجته بالفعل. هذا يجعل سير العمل قابلاً للتكرار حتى إذا قامت Telegram بالتسليم المزدوج.
ما هو إعدادك — مستضاف ذاتيًا مع أكثر من مثيل واحد، وهل أنت على الاستقصاء أم webhook؟ سيحدد الإجابة الأمر.