طريقة المستقبل مقابل. قمة قائمة الانتظار في Salesforce

نشرت: 2023-11-20

في عالم تطوير Salesforce سريع الخطى، يعد فهم أفضل الأدوات والأساليب للبرمجة الفعالة والفعالة أمرًا بالغ الأهمية. تتعمق هذه المقالة في مفهومين رئيسيين: الطريقة المستقبلية والقمة القابلة للانتظار. كلاهما من التقنيات القوية المستخدمة في Salesforce للتعامل مع العمليات غير المتزامنة، لكن لديهما ميزات وحالات استخدام مميزة.

سنستكشف الفروق الدقيقة بين Future Method وQueueable Apex، ومقارنة وظائفهما ومزاياهما ومتى يتم استخدام كل منهما في مشاريع Salesforce الخاصة بك. سواء كنت مطورًا متمرسًا أو جديدًا في Salesforce، ستوفر لك هذه المقارنة رؤى قيمة، مما يساعدك على اتخاذ قرارات مستنيرة لتحسين التعليمات البرمجية الخاصة بك.

تابعونا بينما نكشف عن التعقيدات ونكشف عن إمكانات Future Method وQueueable Apex في Salesforce!

جدول المحتويات

لماذا الطريقة المستقبلية؟

إذا كنت تريد تشغيل العمليات في سلسلة منفصلة، ​​في وقت لاحق وتريد تنفيذ التعليمات البرمجية بشكل غير متزامن، فنحن بحاجة إلى استخدام الأساليب المستقبلية.

متى يتم استخدامه؟

يتم استخدامها للعمليات طويلة الأمد مثل وسائل الشرح لخدمات الويب الخارجية أو أي عملية ترغب في تشغيلها في سلسلة المحادثات الخاصة بها

لماذا قمة في قائمة الانتظار؟

يستخدم Like Future أيضًا لتنفيذ التعليمات البرمجية غير المتزامنة، ويتيح لك إضافة وظائف في قائمة الانتظار وتحسين طريقة تشغيل التعليمات البرمجية غير المتزامنة مقارنة بالطريقة المستقبلية.

متى يتم استخدامه؟

بالنسبة لعمليات Apex التي يتم تشغيلها لفترة طويلة، مثل عمليات قاعدة البيانات الشاملة أو وسائل شرح خدمة الويب الخارجية، يمكنك تشغيلها بشكل غير متزامن من خلال تنفيذ الواجهة القابلة لقائمة الانتظار

اقرأ أيضًا: كيفية تنفيذ Salesforce SSO باستخدام OAuth؟

الاختلافات بين القمة المستقبلية والقابلة للانتظار:

طريقة المستقبل قمة قابلة للانتظار
1. لن يستخدم المستقبل أبدًا للعمل على كائنات SObject أو أنواع الكائنات.

2. عند استخدام الطريقة المستقبلية لا يمكننا مراقبة الوظائف التي هي قيد التنفيذ.

3. لا يمكن استدعاء الطريقة المستقبلية داخل فئة المستقبل أو فئة الدفعة.

4. لن يتم وضع الطريقة المستقبلية في قائمة الانتظار أبدًا.

1. يمكن أن تحتوي المهام القابلة للانتظار على متغير العضو ككائنات SObject أو أنواع Apex مخصصة.

2. عند استخدام المهام القابلة للانتظار، سيتم إنشاء AsyncApexJob الذي يمكننا مراقبته مثل المهام المجدولة.

3. يمكن استدعاء Apex القابلة للانتظار من فئة المستقبل والدفعة.

4. سيؤدي استخدام Queueable Apex إلى ربط المهام القابلة للوضع في قائمة الانتظار وفي إصدار المطور لا يوجد سوى 5 وظائف فقط.

قمة قابلة للانتظار

الفئة القابلة للانتظار هي فئة يتم إنشاؤها عن طريق تطبيق الواجهة المحددة مسبقًا "القابلة للانتظار". تتيح هذه الواجهة طريقة تشغيل المهام غير المتزامنة أو كود الوظيفة مقارنة بالطريقة المستقبلية. سيمكنك من مراقبة المهام الموجودة في قائمة الانتظار (يتم إنشاء قائمة الانتظار هذه بواسطة واجهة Queueable بحيث يمكن تشغيل المهام بشكل غير متزامن).

بناء الجملة:

 فئة عامة <اسم الفئة القابلة للانتظار> تنفذ قائمة الانتظار {
// هذه هي الطريقة الوحيدة المضمنة في الواجهة القابلة لقائمة الانتظار والمطلوبة لوراثة هذه الطريقة في الفئة القابلة لقائمة الانتظار.
تنفيذ الفراغ العام (سياق QueueableContext) {
// الكود الذي يجب تنفيذه
}
}

أي عملية Apex تستغرق وقتًا طويلاً في التنفيذ، مثل عمليات قاعدة البيانات الشاملة أو وسائل شرح خدمة الويب الخارجية، يمكنك تشغيلها بشكل غير متزامن من خلال تنفيذ الواجهة القابلة لقائمة الانتظار وإضافة وظيفة إلى قائمة انتظار مهام Apex.

تعمل مهمة القمة غير المتزامنة الخاصة بك في الخلفية في سلسلة الرسائل الخاصة بها ولا تؤخر تنفيذ منطق Apex الرئيسي الخاص بك. يتم تشغيل كل مهمة في قائمة الانتظار عندما تصبح موارد النظام متوفرة. تتمثل فائدة استخدام أساليب الواجهة في أن بعض حدود الحاكم أعلى من حدود Apex المتزامنة، مثل حدود حجم الكومة.

طريقة قمة المستقبل

يتم استخدام القمة المستقبلية لتشغيل العمليات في سلسلة منفصلة، ​​لاحقًا عندما تصبح موارد النظام متاحة. لاستخدام القمة المستقبلية، لا نحتاج إلى إنشاء أي فئة، نحتاج فقط إلى استخدام التعليق التوضيحي "@future" لتحديد الطرق التي تعمل بشكل غير متزامن وللإشارة إلى أن الطريقة الموضحة أدناه هذا التعليق التوضيحي هي طريقة مستقبلية.

عند استخدام المعالجة المتزامنة، يتم إجراء جميع استدعاءات الطريقة من نفس مؤشر الترابط الذي ينفذ رمز Apex، ولا يمكن إجراء أي معالجة إضافية حتى تكتمل العملية. يمكنك استخدام الطرق المستقبلية لأي عملية ترغب في تشغيلها بشكل غير متزامن في سلسلة المحادثات الخاصة بها. يوفر هذا فوائد عدم منع المستخدم من تنفيذ عمليات أخرى وتوفير حدود أعلى للتنفيذ والتنفيذ للعملية.
بناء الجملة:

 فئة عالمية <اسم الفئة> {
// يوجد أدناه تعليق توضيحي مستقبلي يحدد الطريقة المحددة هي الطريقة المستقبلية.
@مستقبل
الفراغ الثابت العام <FutureMethodName>(List<Id> RecordIds) {
حسابات List<Contact> = [اختر المعرف والاسم الأول واسم العائلة من جهة الاتصال حيث المعرف IN:recordIds];
// معالجة سجلات جهات الاتصال للقيام بأشياء رائعة
}
}

اقرأ أيضًا: كيفية توصيل تكامل Pipedrive و Salesforce؟

عادة ما تستخدم الأساليب المستقبلية ل

وسائل الشرح لخدمات الويب الخارجية. إذا كنت تقوم بإجراء وسائل شرح من مشغل أو بعد إجراء عملية DML، فيجب عليك استخدام أسلوب مستقبلي أو قابل للانتظار. ستؤدي وسيلة الشرح الموجودة في المشغل إلى إبقاء اتصال قاعدة البيانات مفتوحًا طوال مدة وسيلة الشرح.

العمليات التي تريد تشغيلها في سلسلة المحادثات الخاصة بها عندما يسمح الوقت بذلك، مثل نوع من العمليات الحسابية كثيفة الاستخدام للموارد أو معالجة السجلات

ملاحظة: لا يمكن تمرير سبب الكائنات كوسائط إلى الطريقة المستقبلية لأن الكائن يمكن أن يتغير بين الوقت الذي تستدعي فيه الطريقة والوقت الذي يتم تنفيذه فيه بالفعل. يتم تشغيل الأساليب المستقبلية عندما تصبح موارد النظام متاحة. عند تنفيذ طريقة مستقبلية، قد تكون لها قيمة كائن قديمة، مما قد يتسبب في حدوث جميع أنواع الأشياء السيئة.

أشياء للذكرى

  • يجب أن تكون الطريقة المستقبلية ثابتة
  • يجب أن يكون نوع الإرجاع فارغًا
  • يجب أن تكون المعلمات المحددة أنواع بيانات أولية، أو صفائف من أنواع البيانات الأولية، أو مجموعات من أنواع البيانات الأولية
  • يمكنك استدعاء الطرق المستقبلية بنفس الطريقة التي تتصل بها بأي طريقة أخرى. ومع ذلك، لا يمكن للأسلوب المستقبلي استدعاء أسلوب مستقبلي آخر
  • ما لا يزيد عن 50 استدعاء أسلوب لكل استدعاء Apex
  • الاستدعاءات غير المتزامنة، مثل @future أو ExecuteBatch، التي يتم استدعاؤها في كتلة startTest أو stopTest، لا يتم احتسابها ضمن الحدود التي حددتها لعدد المهام الموضوعة في قائمة الانتظار
توظيف مطوري فريق المبيعات

مثال على الطريقة المستقبلية والفئة القابلة للانتظار

الطريقة المستقبلية والفئة القابلة للانتظار

هنا أحصل على قيمة 4 عملات بالدولار الكندي. للجنيه الاسترليني والدولار الأمريكي والدولار الأسترالي والدولار الكندي. وحفظ القيمة في عملة البيانات التعريفية المخصصة. بالنسبة لـ HTTPREQUEST هنا، استخدمت الطريقة المستقبلية. ولأنه يقوم بتحديث سجلات متعددة في نفس الوقت أثناء تشغيل الدفعة، فقد استخدمت Queueable Apex الذي يقوم بتحديث سجلات متعددة في وقت واحد.

التحديث المخصص لبيانات التعريف المخصصة

التحديث المخصص لبيانات التعريف المخصصة

فئة قابلة للانتظار

فئة قابلة للانتظار

استدعاء الأسلوب المستقبلي وإرسال القائمة للتحديث في فئة قائمة الانتظار

استدعاء طريقة المستقبل

Emizentech هي شركة استشارات فريق المبيعات الأصيلة وذات الخبرة ويمكن لمطوري فريق المبيعات المهرة لدينا أن يقدموا لك المساعدة المهنية لمشروع فريق المبيعات التالي الخاص بك.

اقرأ أيضًا: كيفية إنشاء مكون خريطة Salesforce Lightning؟