Asynchronous Apex

From binaryoption
Jump to navigation Jump to search
Баннер1

```wiki

برمجة الذروة غير المتزامنة

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

لماذا نستخدم برمجة الذروة غير المتزامنة؟

تخيل أنك تقوم بتحديث سجلات متعددة في قاعدة البيانات. إذا قمت بذلك بشكل متزامن (synchronously)، فسوف يستغرق الأمر وقتاً طويلاً، وقد يتسبب في توقف واجهة المستخدم. بالإضافة إلى ذلك، قد تواجه حدود الحاكم (governor limits) التي تفرض قيوداً على مقدار الموارد التي يمكن أن تستهلكها التعليمات البرمجية الخاصة بك.

برمجة الذروة غير المتزامنة تحل هذه المشكلات عن طريق:

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

أنواع برمجة الذروة غير المتزامنة

تتوفر عدة طرق لتنفيذ التعليمات البرمجية غير المتزامنة في الذروة، ولكل منها خصائصها ومزاياها الخاصة. إليك الأنواع الرئيسية:

  • Batch Apex (ذروة الدفعات): تستخدم لمعالجة كميات كبيرة من السجلات. يتم تقسيم البيانات إلى دفعات (batches) أصغر، ويتم معالجة كل دفعة بشكل مستقل. Batch Apex مثالي لمهام مثل تحديث حقول متعددة في وقت واحد أو استيراد البيانات.
  • Queueable Apex (ذروة الانتظار): تسمح لك بوضع فئة الذروة في قائمة انتظار (queue) للمعالجة في المستقبل. يمكن استخدام Queueable Apex لتأخير تنفيذ التعليمات البرمجية أو لتنفيذها بعد اكتمال عملية أخرى.
  • Future Methods (الطرق المستقبلية): تسمح لك بتحديد طريقة الذروة لتنفيذها بشكل غير متزامن. Future Methods بسيطة وسهلة الاستخدام، ولكنها محدودة في نطاقها.
  • Scheduled Apex (ذروة الجدول الزمني): تسمح لك بتحديد فئة الذروة لتنفيذها في وقت محدد أو على فترات منتظمة. Scheduled Apex مثالية لمهام مثل إرسال رسائل البريد الإلكتروني اليومية أو تحديث البيانات بشكل دوري.
  • Platform Events (أحداث النظام الأساسي): تتيح لك نشر الأحداث التي يمكن أن تؤدي إلى تنفيذ التعليمات البرمجية غير المتزامنة. Platform Events مفيدة لبناء تطبيقات تعتمد على الأحداث.

Batch Apex بالتفصيل

Batch Apex هي طريقة قوية لمعالجة كميات كبيرة من البيانات. تتكون من ثلاثة أجزاء رئيسية:

1. start method (طريقة البداية): تحدد نطاق البيانات التي سيتم معالجتها. ترجع هذه الطريقة مثيلاً لفئة Database.QueryLocator. 2. execute method (طريقة التنفيذ): تنفذ معالجة البيانات لكل دفعة. تتلقى هذه الطريقة قائمة بالسجلات التي سيتم معالجتها. 3. finish method (طريقة الانتهاء): يتم استدعاؤها بعد اكتمال معالجة جميع الدفعات. يمكن استخدام هذه الطريقة لتنفيذ مهام التنظيف أو لتسجيل النتائج.

مثال بسيط:

```apex global class AccountUpdater implements Database.Batchable<sObject> {

   global Database.QueryLocator start(Database.BatchableContext context) {
       String query = 'SELECT Id, Name FROM Account WHERE Industry = \'Technology\;
       return Database.getQueryLocator(query);
   }
   global void execute(Database.BatchableContext context, List<sObject> scope) {
       for (Account acc : scope) {
           acc.Name = acc.Name + ' - Updated';
           update acc;
       }
   }
   global void finish(Database.BatchableContext context) {
       System.debug('Account update completed.');
   }

} ```

Queueable Apex بالتفصيل

Queueable Apex توفر طريقة مرنة لتأخير تنفيذ التعليمات البرمجية أو لتنفيذها بعد اكتمال عملية أخرى. يتم تعريف فئة Queueable Apex عن طريق تنفيذ واجهة `Queueable`. يتم بعد ذلك إنشاء مثيل للفئة وإرساله إلى قائمة الانتظار باستخدام طريقة `System.enqueueJob()`.

مثال بسيط:

```apex global class MyQueueable implements Queueable {

   global void execute(QueueableContext context) {
       System.debug('Queueable job executed.');
   }

}

// To enqueue the job: MyQueueable q = new MyQueueable(); System.enqueueJob(q); ```

Future Methods بالتفصيل

Future Methods هي أبسط طريقة لتنفيذ التعليمات البرمجية بشكل غير متزامن. يتم تحديد طريقة Future عن طريق إضافة الكلمة الأساسية `future` قبل تعريف الطريقة. تقتصر Future Methods على استدعاء طرق أخرى مع `future` أو طرق عامة.

مثال بسيط:

```apex @future (callout=true) public static void updateAccount(Id accountId) {

   Account acc = [SELECT Id, Name FROM Account WHERE Id = :accountId];
   acc.Name = 'Updated from Future Method';
   update acc;

}

// To call the method: updateAccount(accountId); ```

Scheduled Apex بالتفصيل

Scheduled Apex تسمح لك بتحديد فئة الذروة لتنفيذها في وقت محدد أو على فترات منتظمة. يتم تعريف فئة Scheduled Apex عن طريق تنفيذ واجهة `Schedulable`. يتم بعد ذلك إنشاء مثيل للفئة وجدولته للتنفيذ باستخدام طريقة `System.schedule()`.

مثال بسيط:

```apex global class MySchedulable implements Schedulable {

   global void execute(SchedulableContext sc) {
       System.debug('Scheduled Apex job executed.');
   }

}

// To schedule the job: String cronExpression = '0 0 * * * ?'; // Run daily at midnight System.schedule('My Scheduled Job', cronExpression, new MySchedulable()); ```

اعتبارات مهمة

  • **حدود الحاكم:** على الرغم من أن المهام غير المتزامنة تخضع لمجموعة مختلفة من حدود الحاكم، إلا أنه لا يزال من المهم مراعاة هذه الحدود عند تصميم التعليمات البرمجية الخاصة بك.
  • **معالجة الأخطاء:** تأكد من التعامل مع الأخطاء بشكل صحيح في التعليمات البرمجية غير المتزامنة الخاصة بك. استخدم كتل `try-catch` لتجنب حدوث أخطاء غير متوقعة.
  • **الترتيب:** لا يمكنك الاعتماد على ترتيب تنفيذ المهام غير المتزامنة. إذا كان الترتيب مهماً، فستحتاج إلى استخدام آليات أخرى، مثل Queueable Apex مع سلاسل الاعتمادية.
  • **التصحيح:** قد يكون تصحيح التعليمات البرمجية غير المتزامنة أكثر صعوبة من تصحيح التعليمات البرمجية المتزامنة. استخدم عبارات `System.debug()` لتسجيل المعلومات المهمة.

استراتيجيات الخيارات الثنائية ذات الصلة

  • استراتيجية 60 ثانية: تعتمد على استغلال التقلبات القصيرة الأجل.
  • استراتيجية مارتينجال: تتضمن مضاعفة الرهان بعد كل خسارة. (تحذير: هذه الاستراتيجية محفوفة بالمخاطر).
  • استراتيجية المتوسط المتحرك: تستخدم المتوسطات المتحركة لتحديد الاتجاهات.
  • استراتيجية مؤشر القوة النسبية (RSI): تستخدم مؤشر القوة النسبية لتحديد ظروف ذروة الشراء والبيع.
  • استراتيجية بولينجر باند: تستخدم نطاقات بولينجر لتحديد التقلبات.
  • استراتيجية الاختراق: تعتمد على اختراق مستويات الدعم والمقاومة.
  • استراتيجية الإرجاع: تعتمد على توقع ارتداد السعر عن مستويات الدعم والمقاومة.
  • استراتيجية الدعم والمقاومة: تعتمد على تحديد مستويات الدعم والمقاومة.
  • استراتيجية أنماط الشموع اليابانية: تعتمد على تحليل أنماط الشموع اليابانية.
  • استراتيجية التحليل الفني: تستخدم مجموعة متنوعة من الأدوات الفنية لتحديد فرص التداول.
  • تحليل حجم التداول: يستخدم حجم التداول لتأكيد الاتجاهات.
  • مؤشر ستوكاستيك: مؤشر يستخدم لتحديد ظروف ذروة الشراء والبيع.
  • مؤشر الماكد (MACD): مؤشر يستخدم لتحديد الاتجاهات والزخم.
  • مؤشر بارابوليك SAR: مؤشر يستخدم لتحديد نقاط الدخول والخروج المحتملة.
  • مؤشر ويليامز %R: مؤشر يستخدم لتحديد ظروف ذروة الشراء والبيع.
  • الاتجاهات الصاعدة: فترات زمنية يشير فيها السعر إلى حركة تصاعدية مستمرة.
  • الاتجاهات الهابطة: فترات زمنية يشير فيها السعر إلى حركة تنازلية مستمرة.
  • الشموع الانعكاسية: أنماط شموع تشير إلى تغيير محتمل في الاتجاه.
  • الشموع الاستمرارية: أنماط شموع تشير إلى استمرار الاتجاه الحالي.
  • النماذج الرأس والكتفين: نموذج فني يشير إلى انعكاس محتمل للاتجاه.
  • النماذج المزدوجة القمة والمزدوجة القاع: نماذج فنية تشير إلى انعكاس محتمل للاتجاه.
  • المثلثات الصاعدة والهابطة: نماذج فنية تشير إلى استمرار أو انعكاس محتمل للاتجاه.
  • قنوات الاتجاه: خطوط تربط بين القمم والقيعان لتحديد الاتجاه.
  • خطوط الاتجاه: خطوط تربط بين القمم أو القيعان لتحديد الاتجاه.

الخلاصة

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

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер