ترخيص ميزات البرامج وحدود الاستخدام
صلاحية التصدير تختلف عن 500 تصدير شهريًا. يفحص RunFeature الصلاحية، ويؤكد RunMeteredFeature الاستخدام بعد نجاح العملية.
السماح بـ 500 تصدير شهريًا
أضف export إلى الميزات ثم حصة: export، 500، شهريًا. الافتراضي يرفض بعد نفادها. للسماح بزيادة اضبط أقصاها؛ يسجل النظام التجاوز لنظام طلباتك.
تتجدد الحصص اليومية والشهرية عند منتصف ليل UTC؛ التراكمية لا تتجدد. تغيير الحد لا يمسح الاستخدام السابق.
تأكيد الاستخدام بعد نجاح التصدير
مرّر دالة العملية إلى SDK. استخدم معرفًا جديدًا لكل مهمة جديدة، ونفس المعرف والميزة والكمية لإعادة المحاولة. لا تشغّل نفس المعرف بالتوازي في عمليات مختلفة.
| اللغة | استدعاء عملية محسوبة |
|---|---|
| Go | client.RunMeteredFeature(ctx, "export", 1, jobID, exportReport) |
| Java | client.runMeteredFeature("export", 1, jobID, this::exportReport) |
| Node.js | await client.runMeteredFeature("export", 1, jobID, exportReport) |
| Python | client.run_metered_feature("export", 1, job_id, export_report) |
| C# | await client.RunMeteredFeature("export", 1, jobID, ExportReport) |
| C++ | client.RunMeteredFeature("export", 1, jobID, exportReport) |
| Rust | client.run_metered_feature("export", 1, &job_id, || export_report())? |
| Ruby | client.run_metered_feature("export", 1, job_id) { export_report } |
| C | ln_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.
إذا نجح العمل وفشل التأكيد، تعيد المحاولة التأكيد فقط دون العمل. التعطل أثناء العمل يمنع إعادة التنفيذ تلقائيًا. افحص نتيجتك الدائمة ثم استخدم ResolveMeteredFeature للتأكيد أو الإلغاء. العدّ البعيد والعمل المحلي ليسا معاملة واحدة.
عند الحاجة للتحكم بالحجز بنفسك
- أنشئ معرّف مهمة لهذا التصدير واحفظه.
- احجز وحدة وابدأ التصدير فقط بعد pending. يعني committed أن العمل اكتمل؛ لا تنفذه مجددًا.
- بعد نجاح التصدير وحفظ النتيجة، استدعِ Commit لتأكيد الاستخدام.
- إذا فشل التصدير قبل اكتماله، استدعِ Cancel لإلغاء الحجز دون احتساب الاستخدام.
الحجز صالح 15 دقيقة افتراضيًا، ويُقصّر عند إعادة ضبط فترة UTC. يمكن للـ API ضبط reservation_seconds إلى 30–3600 ثانية.
| اللغة | حجز | تأكيد / إلغاء |
|---|---|---|
| Go | Reserve(ctx, "export", 1, jobID) | Commit / Cancel(ctx, hold.ID, jobID) |
| Java / Node.js | reserve("export", 1, jobID) | commit / cancel(id, jobID) |
| C | ln_reserve(client, "export", 1, jobID) | ln_commit / ln_cancel(client, id, jobID) |
| C++ / C# | Reserve("export", 1, jobID) | Commit / Cancel(id, jobID) |
| Python | reserve("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 الأربعة المحتسبة للمنصة.