انتقل إلى المحتوى

ترخيص ميزات البرامج وحدود الاستخدام

صلاحية التصدير تختلف عن 500 تصدير شهريًا. يفحص RunFeature الصلاحية، ويؤكد RunMeteredFeature الاستخدام بعد نجاح العملية.

السماح بـ 500 تصدير شهريًا

أضف export إلى الميزات ثم حصة: export، ‏500، شهريًا. الافتراضي يرفض بعد نفادها. للسماح بزيادة اضبط أقصاها؛ يسجل النظام التجاوز لنظام طلباتك.

تتجدد الحصص اليومية والشهرية عند منتصف ليل UTC؛ التراكمية لا تتجدد. تغيير الحد لا يمسح الاستخدام السابق.

تأكيد الاستخدام بعد نجاح التصدير

مرّر دالة العملية إلى SDK. استخدم معرفًا جديدًا لكل مهمة جديدة، ونفس المعرف والميزة والكمية لإعادة المحاولة. لا تشغّل نفس المعرف بالتوازي في عمليات مختلفة.

اللغةاستدعاء عملية محسوبة
Goclient.RunMeteredFeature(ctx, "export", 1, jobID, exportReport)
Javaclient.runMeteredFeature("export", 1, jobID, this::exportReport)
Node.jsawait client.runMeteredFeature("export", 1, jobID, exportReport)
Pythonclient.run_metered_feature("export", 1, job_id, export_report)
C#await client.RunMeteredFeature("export", 1, jobID, ExportReport)
C++client.RunMeteredFeature("export", 1, jobID, exportReport)
Rustclient.run_metered_feature("export", 1, &job_id, || export_report())?
Rubyclient.run_metered_feature("export", 1, job_id) { export_report }
Cln_run_metered_feature(client, "export", 1, job_id, export_report, context)

Configure a meter for the actual feature in your policy, then generate the AI integration prompt. AI should use the language's RunMeteredFeature with a stable business operation ID, preserving that ID when retrying the same task.

يحفظ SDK المهام التي تنتظر التأكيد.

إذا نجح العمل وفشل التأكيد، تعيد المحاولة التأكيد فقط دون العمل. التعطل أثناء العمل يمنع إعادة التنفيذ تلقائيًا. افحص نتيجتك الدائمة ثم استخدم ResolveMeteredFeature للتأكيد أو الإلغاء. العدّ البعيد والعمل المحلي ليسا معاملة واحدة.

عند الحاجة للتحكم بالحجز بنفسك
  1. أنشئ معرّف مهمة لهذا التصدير واحفظه.
  2. احجز وحدة وابدأ التصدير فقط بعد pending. يعني committed أن العمل اكتمل؛ لا تنفذه مجددًا.
  3. بعد نجاح التصدير وحفظ النتيجة، استدعِ Commit لتأكيد الاستخدام.
  4. إذا فشل التصدير قبل اكتماله، استدعِ Cancel لإلغاء الحجز دون احتساب الاستخدام.

الحجز صالح 15 دقيقة افتراضيًا، ويُقصّر عند إعادة ضبط فترة UTC. يمكن للـ API ضبط reservation_seconds إلى 30–3600 ثانية.

اللغةحجزتأكيد / إلغاء
GoReserve(ctx, "export", 1, jobID)Commit / Cancel(ctx, hold.ID, jobID)
Java / Node.jsreserve("export", 1, jobID)commit / cancel(id, jobID)
Cln_reserve(client, "export", 1, jobID)ln_commit / ln_cancel(client, id, jobID)
C++ / C#Reserve("export", 1, jobID)Commit / Cancel(id, jobID)
Pythonreserve("export", 1, jobID)commit / cancel(id, jobID)

كيف تقرأ حقول الاستجابة؟

الحقلالمعنى
reservation_id / operation_idمعرّف الحجز ومعرّف المهمة الأصلي؛ استخدم القيم نفسها عند إعادة المحاولة.
status / expires_atحالة الحجز وموعد انتهائه: pending ينتظر الإكمال، committed احتُسب، canceled أُلغي، expired انتهت مدته.
consumption.used / reservedالاستخدامات المؤكدة في هذه الفترة / الوحدات المحجوزة لجميع المهام السارية.
consumption.limit / remainingالحصة الأساسية / الوحدات الأساسية المتاحة. remaining = max(0, limit - used - reserved)، دون التجاوز المسموح.
consumption.quantity / overageوحدات هذه المهمة / الوحدات المؤكدة فوق الحد الأساسي؛ لا تُحصّل أموال من العميل.
consumption.period / reset_atفترة الاستخدام بتوقيت UTC / إعادة الضبط التالية؛ للحصة مدى الحياة reset_at = null.

راجع طلبات Reserve وCommit وCancel في مرجع API للتحقق من الترخيص لمعرفة الرسائل وأنواع الحقول.

بعد انتهاء مهلة التأكيد، أعد محاولة التأكيد فقط.

بعد النجاح لا تلغِ الحجز ولا تكرّر التصدير. احفظ المعرّفات والنتيجة وأعد Commit. إذا انتهى الحجز فاحتفظ بالمهمة للمراجعة. احتساب الاستخدام البعيد والعمل المحلي لا يشكّلان معاملة ذرّية واحدة.

يسجّل Consume الاستخدام فورًا. استخدم الحجز لتجنب احتساب العمل الفاشل. جميع واجهات استخدام الميزات تتطلب اتصالًا ولا تدخل ضمن أنواع API الأربعة المحتسبة للمنصة.