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