0Pricing
Android Academy · درس

العمل الدوري والمتسلسل

كرّر مهام الخلفية ورتّبها

العمل الدوري والمتسلسل درس مجاني في Android Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Android Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Android Academy 4 دروس في المجموع.

العمل الدوري والمتسلسل

إلى جانب المهام التي تُنفَّذ مرة واحدة، يستطيع WorkManager تكرار العمل وفق جدول زمني وتسلسل عدة عمال بحيث يُشغَّلون بالتتابع. يغطي هذا الدرس الأمرين.

PeriodicWorkRequest

للعمل المتكرر، استخدم PeriodicWorkRequestBuilder مع تحديد الفاصل الزمني للتكرار. يعيد WorkManager تشغيل العامل مرة واحدة كل فترة.

val periodic = PeriodicWorkRequestBuilder<SyncWorker>(
    repeatInterval = 1,
    repeatIntervalTimeUnit = TimeUnit.HOURS
).build()

الحد الأدنى البالغ 15 دقيقة

الحد الأدنى لفاصل التكرار هو 15 دقيقة. وتُقرَّب الطلبات ذات الفاصل الأقصر إلى 15 دقيقة. يحافظ ذلك على البطارية؛ إذ إن WorkManager ليس مخصصًا للتوقيت الدقيق كل ثانية.

العمل الدوري غير دقيق

الفاصل الزمني إرشادي وليس مؤقتًا دقيقًا. قد يشغّل النظام العمل لاحقًا لتجميع المهام وتوفير الطاقة. لا تعتمد عليه في المهام الحساسة للوقت.

وضع العمل الدوري الفريد في قائمة الانتظار

استخدم enqueueUniquePeriodicWork حتى لا تتراكم نسخ متعددة من المهمة الدورية نفسها عند تشغيل التطبيق مرات متعددة.

WorkManager.getInstance(context).enqueueUniquePeriodicWork(
    "daily_sync",
    ExistingPeriodicWorkPolicy.KEEP,
    periodic
)

ما المقصود بالتسلسل

يشغّل التسلسل العمال بترتيب محدد: تبدأ الخطوة B فقط بعد نجاح الخطوة A. ويصبح إخراج إحدى الخطوات إدخالًا للخطوة التالية.

beginWith و then

ابدأ سلسلة باستخدام beginWith، وأضف الخطوات المتتابعة باستخدام then. استدعِ enqueue لإرسال السلسلة بأكملها.

WorkManager.getInstance(context)
    .beginWith(compressRequest)
    .then(uploadRequest)
    .then(cleanupRequest)
    .enqueue()

تنتقل البيانات عبر السلسلة

تُمرَّر Data الناتجة من أحد العمال كإدخال إلى العامل التالي. لذلك يمكن لـ compressRequest إرجاع مسار ملف يقرأه uploadRequest من inputData.

الخطوات المتوازية في السلسلة

يمكنك تشغيل عدة عمال بالتوازي من خلال تمرير قائمة إلى beginWith؛ وتنتظر then التالية انتهاءها جميعًا.

WorkManager.getInstance(context)
    .beginWith(listOf(downloadA, downloadB))
    .then(mergeRequest)
    .enqueue()

يوقف الفشل السلسلة

إذا أعاد أي عامل Result.failure()، تُلغى الخطوات المتبقية في السلسلة. أما retry() فيوقف السلسلة مؤقتًا إلى أن تنجح تلك الخطوة في النهاية.

الدمج مع القيود

يمكن لكل طلب في سلسلة، أو لكل طلب دوري، أن يحمل قيوده الخاصة؛ فعلى سبيل المثال، قد تتطلب خطوة الرفع فقط شبكة غير محدودة، بينما يمكن تشغيل الضغط في أي وقت.

اختبار سريع

اختبر مدى فهمك للعمل الدوري والمتسلسل.

مراجعة

لقد تعلمت العمل الدوري والمتسلسل:

  • يكرر PeriodicWorkRequestBuilder العمل، والحد الأدنى 15 دقيقة، والتوقيت غير دقيق
  • يسلسل beginWith().then() العمال بالتتابع
  • تنتقل بيانات الإخراج من خطوة إلى التالية؛ وتُشغَّل القوائم بالتوازي
  • يلغي الفشل السلسلة؛ ويمكن أن تكون لكل خطوة قيودها الخاصة

لقد أتممت دورة WorkManager.

الأسئلة الشائعة

هل درس «العمل الدوري والمتسلسل» مجاني؟

نعم — نص درس «العمل الدوري والمتسلسل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Android Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Android Academy 4 دروس في المجموع.

ماذا ستتعلم في «العمل الدوري والمتسلسل»؟

كرّر مهام الخلفية ورتّبها تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Android Academy؟

لا تُشترط خبرة سابقة. Android Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «العمل الدوري والمتسلسل»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Android Academy هذا؟

نعم. كل درس في Android Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. متى نستخدم WorkManager؟
  2. إنشاء Worker
  3. القيود والجدولة
  4. العمل الدوري والمتسلسل
← العودة إلى Android Academy