آموزش لایفری 7

استفاده از  FORKS و  JOINS

Forks  و  joins برای پردازش موازی استفاده می شود. به عنوان مثال، اگر  شما یک پیشنهاد جدید داشته باشید شما می خواهم برای قرار دادن در سایت خود اما در ابتدا باید از طریق هر دو مدیر فروش و مدیر بازاریابی برود. شما می‌توانید گردش کار را طوری تنظیم نمایید که به طور هم‌زمان به هر دو مدیر اطلاع رسانی شود و آنها به صورت جداگانه آنها را تایید نمایند. به این ترتیب شما نباید منتظر تایید یک مدیر قبل از ارسال اطلاعیه به مدیر دیگر باشید. تصویر زیر نشان میدهد که چگونه یک گردش کار را با یک fork یا join ممکن طراحی شده باشد.

 

شکل ‏4-1: برای انجام کارها به صورت موازی می‌توان از  fork و join استفاده نمود.

شما می توانید  از یک کار و یا مرحله به یک fork منتقل شوید. از  fork، شما می توانید به کارها یا مراحل متعدد  که به صورت موازی رخ می دهد انتقال یابید. در مثال قبلی از یک کار می‌توان د انتقال انجام داد که از هم مستقل هستند و هر کدام را که بخواهید می‌توانید انجام دهید. انتقال ها نیز به صورت سریال است به این معنی که  یکی باید رخ دهد قبل از یک بعدی رخ دهد. به عنوان مثال، شما می توانید از این برای جداسازی زنجیره تایید دو بخش مختلف روی یک دارایی استفاده کنید. یک fork باید به صورت زیر باشد:

<fork>
    <name>review_fork</name>
    <transitions>
       <transition>
         <name>node_1</name>
         <target>review_one</target>
       </transition>
       <transition>
         <name>node_2</name>
         <target>review_two</target>
       </transition>
    </transitions>
</fork>

برای برگشت از یک fork باید تمام گره‌های آن به یک join برگردد. join  مثل یک fork فرمت دهی شده است ، به جز اینکه  انتقال‌ها به صورت سریال است و موازی نیست، همانطور که در مثال زیر مشاهده می‌کنید:

<join>
    <name>approved</name>
    <transitions>
       <transition>
         <name>result</name>
         <target>done</target>
         <default>true</default>
       </transition>
    </transitions>
</join>

نکته مهم دیگر در هنگام ایجاد تایید های موازی این است که  هر گره به مرحله رد شدن مخصوص به خود احتیاج دارد این برای مواردی است که محتوا در یک گره تایید اما در دیگری رد می‌شود.

00
قبلی