حالات الإرسال والحصة وإعادة المحاولة
افهم accepted وunknown، وتجنب إرسال أو احتساب نفس الحدث مرتين.
آخر تحديث تحريري: ٣٠ أكتوبر ٢٠٢٦في هذا الدليل
معنى الحالات
| الحالة | المعنى |
|---|---|
| queued | مسجل وينتظر المعالجة، والحصة محجوزة. |
| sending | الإرسال قيد التنفيذ؛ لا تنشئ طلبًا بديلًا. |
| accepted | المزود أكد قبول الإرسال؛ ليس تأكيد تسليم أو قراءة. |
| failed | فشل مؤكد؛ راجع error قبل أي رسالة جديدة. |
| unknown | لا نعرف هل قُبل الإرسال؛ لا نعيده تلقائيًا لتجنب نسخة مكررة. |
لو ضاع الرد من الشبكة
- احتفظ بنفس محتوى الطلب ونفس Idempotency-Key لنفس حدث العمل.
- أعد الطلب الأصلي عند الحاجة؛ سيعيد نفس معرف الرسالة وحالتها إن كان مسجلًا.
- لا تغيّر المحتوى تحت المفتاح نفسه؛ الاختلاف يرجع IDEMPOTENCY_CONFLICT.
- لا تولّد مفتاحًا جديدًا لمجرد timeout. لو الحالة unknown، راجع الحدث قبل قرار يدوي بإرسال جديد.
كيف تحسب الحصة؟
الحصة مشتركة لحساب المالك عبر مشاريعه ودوميناته. كل مستلم وحدة؛ فشل مؤكد يعيد الحجز مرة واحدة للفترة الأصلية، بينما accepted وunknown يحتفظان به. إضافة حزم أثناء الفترة الحالية لا تبدأ شهرًا جديدًا للحزم المضافة؛ تنتهي معها في تاريخ الفترة القائم، ولا يُرحّل غير المستخدم.