معدل معالجة الدفعات
تحوّل حاسبة معدل معالجة الدفعات حجم الدفعة وزمن معالجتها إلى معدل فعلي للعناصر. تعرض عدد العناصر في الثانية والدقيقة والساعة، ويمكنها مقارنة هذه السعة بمعدل مستهدف.
شغّل الأداة مجانًا
عند إدخال الهدف، تحسب الحاسبة أصغر حجم صحيح للدفعة يلزم مع الزمن الحالي، وأطول فاصل تسمح به الدفعة الحالية. وبذلك يمكنكم التحقق من افتراضات السعة قبل ضبط العمال أو مستهلكي قوائم الانتظار أو عمليات الاستيراد أو مهام الاستدلال أو العمليات المجمعة المجدولة.
حوّلوا سلوك الدفعات إلى معدل قابل للمقارنة
توصف أنظمة الدفعات عادة برقمين يصعب مقارنتهما مباشرة: عدد العناصر التي تعالجها كل عملية والزمن الذي تستغرقه. تقسم الحاسبة حجم الدفعة على زمن الدفعة لاستخراج معدل المعالجة الفعلي بوحدة عنصر في الثانية، ثم تحوّل المعدل نفسه إلى الدقيقة والساعة. فعلى سبيل المثال، يحقق عامل ينهي 500 عنصر كل 20 ثانية معدلًا مستدامًا قدره 25 عنصرًا في الثانية، بشرط أن يبدأ الدفعة التالية من دون تأخير إضافي. استخدموا الزمن من بداية دفعة إلى بداية التالية عندما يكون الإعداد أو الاستقصاء أو الانتظار أو تأخير قائمة الانتظار جزءًا من دورة التشغيل الحقيقية. واستخدموا زمن المعالجة وحده فقط إذا كانت تلك التأخيرات محسوبة في موضع آخر. تمثل النتيجة معدلًا متوسطًا، ولا تعني أن العناصر تنتهي على فواصل منتظمة. فقد تطلق الدفعة نتائجها كلها دفعة واحدة مع احتفاظها بالمعدل المذكور. يساعد هذا الفرق على مقارنة مستهلكي الدفعات بعمال التدفق من دون الخلط بين زمن تسليم النتيجة وسعة المعالجة.
خططوا لحجم دفعة يحقق المعدل المستهدف
أضيفوا معدلًا مستهدفًا بوحدة عنصر في الثانية عندما تريدون معرفة ما إذا كان الإعداد الحالي يواكب العناصر الواردة أو يحقق هدف الخدمة. تضرب الحاسبة الهدف في زمن الدفعة الحالي ثم تقرّب الناتج إلى العدد الصحيح الأعلى. هذا التقريب ضروري، إذ لا يمكن إضافة جزء من عنصر إلى الدفعة، كما أن التقريب إلى الأسفل ينتج سعة أقل من المطلوبة. لذلك يكون حجم الدفعة المطلوب أصغر عدد صحيح يحقق الهدف أو يتجاوزه مع ثبات الزمن. ويبين المعدل الناتج هامش السعة الصغير الذي قد ينشأ عن التقريب. يفترض هذا السيناريو أن زيادة حجم الدفعة لا تزيد زمن المعالجة. وهو تقدير أولي مفيد، لكن قواعد البيانات وAPI والذاكرة والعمال المتوازيين قد لا تتوسع خطيًا. اختبروا الحجم المقترح باستخدام أحمال ممثلة للواقع، ثم أدخلوا الفاصل المقاس في الحاسبة من جديد. وبتكرار هذه الدورة تستبدلون الافتراض المتفائل بأدلة مأخوذة من النظام الفعلي.
اعرفوا الفاصل الذي تسمح به الدفعة الحالية
قد يتعذر تغيير حجم الدفعة لأن API في المنبع أو حد المعاملة أو الذاكرة أو وسيط الرسائل يفرض سقفًا ثابتًا. عندئذ تحسب الحاسبة أيضًا أقصى زمن مسموح به للحجم الحالي، وذلك بقسمة عدد العناصر على المعدل المستهدف. فدفعة من 600 عنصر تهدف إلى 40 عنصرًا في الثانية، مثلًا، يجب أن تكتمل ضمن فاصل لا يزيد على 15 ثانية بين بدايتي دفعتين. قارنوا هذا الحد بأزمنة القياس عند الشرائح المئينية المرتفعة، لا بأسرع تشغيل أو بالمتوسط وحده. إذا تجاوز التفاوت المعتاد الحد، فقد يحقق الإعداد الاسمي الهدف بينما تستمر قائمة الانتظار في النمو ضمن الإنتاج. وتلخص نسبة المعدلين هامش السعة: قيمة أكبر من واحد تعني سعة زائدة، وواحد يعني تطابقًا، وأقل من واحد يعني عجزًا. يفترض النموذج مسارًا تسلسليًا واحدًا. ولعدة عمال متماثلين، استخدموا حجمهم المجمع ضمن فاصل مشترك، أو اجمعوا معدلاتهم المستدامة فقط عندما يكون توزيع الحمل متوازنًا.
حالات الاستخدام
تحديد سعة مستهلك قائمة الانتظار
حوّلوا حجم دفعة المستهلك وفاصلها إلى معدل، ثم تحققوا من أنه يتجاوز معدل وصول الرسائل.
تخطيط استدعاءات API المجمعة
اعرفوا الحد الأدنى للسجلات في الطلب أو أطول فاصل يحافظ على سرعة المزامنة المطلوبة.
تقييم سعة خط البيانات
قارنوا دفعات الاستيراد المقاسة بهدف محدد لتعرفوا هل يلزم تحسين الحجم أو زمن المعالجة.
الأسئلة الشائعة
ما معادلة حساب معدل معالجة الدفعات؟
يساوي المعدل الفعلي حجم الدفعة مقسومًا على زمنها بالثواني. وتحوله الحاسبة أيضًا إلى قيم في الدقيقة والساعة.
ما الذي ينبغي أن يتضمنه زمن الدفعة؟
استخدموا الزمن بين البدايات لقياس السعة الكاملة. واستخدموا المعالجة وحدها فقط عند استبعاد الإعداد والانتظار عمدًا.
كيف يُحسب حجم الدفعة المطلوب؟
يُضرب الهدف بوحدة عنصر في الثانية في زمن الدفعة، ثم يُقرّب إلى الأعلى حتى لا تقل السعة المخططة عن الهدف.
هل تراعي الحاسبة العمال المتوازيين؟
ليس تلقائيًا. مثّلوهم كدفعة مجمعة ضمن فاصل مشترك، أو اجمعوا معدلاتهم عندما يكون الحمل متوازنًا.
لماذا قد يكون معدل الإنتاج الفعلي أقل؟
قد تخفضه قوائم الانتظار وإعادة المحاولة والإعداد والتزاحم والتوسع غير الخطي وتفاوت الحمل. استخدموا أزمنة مئينية مرتفعة ممثلة للواقع.
ما تكلفة طلب API؟
تبلغ تكلفة كل طلب API مقدار $0.002. ويمكنكم أيضًا استخدام الحاسبة مجانًا في المتصفح.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/batch-throughput \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"batch_size":500,"batch_time_seconds":20}'const res = await fetch("https://api.kit.forhosting.com/dev/batch-throughput", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"batch_size": 500,
"batch_time_seconds": 20
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/batch-throughput",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"batch_size": 500,
"batch_time_seconds": 20
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/batch-throughput", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"batch_size":500,"batch_time_seconds":20}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"batch_size":500,"batch_time_seconds":20}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/batch-throughput", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"batch_size": 500,
"batch_time_seconds": 20
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.batch_throughput",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |