سؤال

مرحبًا يا شباب ، أتساءل كيف تقوم بإنشاء جدولة عمل في Oracle Apex؟

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

إذا تمكنت يا رفاق من رمي بعض الاقتراحات طريقي ، سأقدر ذلك!

هتاف غني

هل كانت مفيدة؟

المحلول

في رأيي ، فإن أبسط الحلول الممكنة التي يمكن أن تعمل

CREATE PROCEDURE escalate_cases
AS
BEGIN
  UPDATE tickets
     SET status = 'ESCALATED'
   WHERE status = 'NOT ESCALATED'
     AND open_date < sysdate - interval '1' hour;
END escalate_cases;

DECLARE
  l_jobno PLS_INTEGER;
BEGIN
  dbms_job.submit( 
    l_jobno,
    'BEGIN escalate_cases(); END;',
    sysdate + interval '1' minute,
    'sysdate + interval ''1'' minute'
  );
  dbms_output.put_line( 'Job ' || l_jobno || ' submitted.' );
  commit;
END;

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

الآن ، إذا كنت ترغب في الحصول على أكثر تطوراً بعض الشيء ، فإن حزمة DBMS_Scheduler توفر قدرًا كبيرًا من الوظائف التي لا تقوم بها حزمة DBMS_JOB. إنه يوفر بعض التسجيل التلقائي ، ويوفر القدرة على سلسلة الوظائف ، وتحديد نوافذ مختلفة حيث تعمل الوظائف وعدم تشغيلها (أي إذا تم إنشاء تذكرة في الساعة 5:30 ، فقد لا ترغب في تصعيدها في الساعة 6:30 لأنها بعد ساعات) ، وما إلى ذلك و dbms_scheduler هو الاتجاه الذي يتحركه أوراكل. لكنني ما زلت أجد نفسي باستخدام DBMS_JOB لمهام بسيطة نسبيًا مثل هذا.

نصائح أخرى

تحقق من المادة هنا

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top