سؤال

أنا أعمل مع تكامل بيانات Pentaho (المعروف أيضًا باسم Kettle) ولدي العديد من التحولات ، دعنا نسميهم A و B و C و D و E. B يعتمد على A و D يعتمد على C و E على B و D. في وظيفة أرغب في تشغيل A و B و C ، D بالتوازي:

           -> A -> B _
    Start<            \
           -> C -> D----> E

حيث A و C تشغيل بالتوازي. هل هناك أي طريقة لتنفيذ e فقط iff b و D كانت ناجحة؟ في الوقت الحالي ، بالنظر إلى مقاييس العمل ، يتم تنفيذ E في أقرب وقت أو تم الانتهاء من D.

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

المحلول

لقد وجدت http://forums.pentaho.org/showthread.php؟t=75425 ويبدو أنه ليس من الممكن بسهولة تحقيق ما أريد.

نصائح أخرى

يمكنك أن تفعل شيئًا كهذا:

        /--=--[job]----[set var J1=1]---\ 
[start]----=--[Job]----[set var J2=1]----+--[jscriptstep]--(ok)-->[next steps]
        \--=--[Job]----[set var J3=1]---/        \
                                                 (x)
                                                   \
                                                  [Write to log]

خطوة JS مع:

J1= parent_job.getVariable("J1");
J2= parent_job.getVariable("J2");
J3= parent_job.getVariable("J3");
(J1*J2*J3)==1;

تعد خطوة الكتابة إلى السجل اختياريًا ولم أكن أسجل في سجل خطأ أحمر ، باستخدام رسالة السجل:

"الانتظار: $ {j1}-$ {j2}-$ {j3}-$ {j4}-$ {j5}"

لذلك أنا قادر على رؤية ماذا ومتى تنتهي كل خطوة من خلال السجل.

أعتقد أن هذا يمكن القيام بذلك ، لكن ليس لدي وظائف كبيرة بما يكفي لاختبار هذا جيدًا ، وهو أمر محرج. في الأساس ، ستحتاج إلى 4 وظائف منفصلة بالإضافة إلى وظائف A و B و C و D و E. دعنا نسميهم السيطرة على الوظيفة ، الوظيفة A_B ، Job C_D ، وظائف متوازية.

قمت بإعدادهم مثل هذا:

Control Job: start -> Parallel Jobs -> E
Parallel Jobs:       -> Job A_B
               start<           (Set Start step to run next jobs in parallel)
                     -> Job C_D
Job A_B: start -> A -> B
Job C_D: start -> C -> D

المفتاح هو أن A -> B و C -> D يجب أن يكون في خطوة وظيفتها للاحتفاظ بالاعتماد. ثم تأكيد الوظائف المتوازية التي تتأكد من الانتهاء من المسارين المتوازيين قبل السماح للسيطرة بالمتابعة إلى E.

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