站在K2角度審視流程--任務的獨佔與釋放

應用場景一:某件事情由A、B兩人(或者更多人)完成,任務開始後,兩人隨時能夠處理任務,只需有一人處理完成,此事情便可結束。資源

 

應用場景二:某件事情由A、B兩人(或者更多人)完成,任務開始後,兩人隨時能夠處理任務,若是A先處理任務,則B此時不能看到此任務,反之亦然。只需任意一人處理完任務,此事情便可結束。io

 

應用場景三:某件事情由A、B兩人(或者更多人)完成,任務開始後,兩人隨時能夠處理任務,若是A先處理任務,則B此時不能看到此任務,反之亦然。A搶先處理任務時,若是發現任務本身沒法處理,應該交由B處理,則選擇釋放,此時B又能看到此任務進行處理,反之亦然。比賽

 

衍生出來的場景還能夠有不少,好比場景一中能夠在處理任務時增長一個獨佔功能,在必要時將任務獨佔住,另外的人沒法看到。多人能夠同時處理任務,實現方式能夠有多種:實例化多個任務,每人一個實例,單獨完成。也能夠只實例化一個任務,使用多個Slot(可使用泳道概念來理解),每人一個泳道,互不干涉。比如兩人游泳的比賽,能夠將兩人安排的兩個長度同樣的游泳池中(一個任務的屢次實例化),同時發令開始游泳,誰先到誰贏,也能夠在一個游泳池中劃分出兩個泳道,每人一個泳道,同時發令開始游泳,誰先到誰贏。區別在於使用的資源不同。實例化

 

應用場景四:某件事情由A、B兩人完成,任務開始後,兩人能夠同時處理任務,當A昨晚時,須要等待B完成才能繼續作下一件事情,反之亦然。只有當兩人都處理完成時,此事情纔算結束。實例

分爲多人處理的任務:

  1. 若是這多人之間存在競爭關係(同一時刻只能有一人處理)時,K2 Destination Rule的Options必須設置爲Plan just once,且Slot爲1。也即任務只實例化一次,換句話說就是隻有一個游泳池,一個泳道,誰先跳下去就誰來遊這一次成績,有一我的跳下去佔用了泳道時,其餘人就不能跳下去了。若是先跳下去的人抽筋了,則須要作一個申明(Realse),其餘人才能夠來競爭這個泳道。
  2. 若是多人之間不是競爭關係,則K2 Destination Rule設置方式能夠多樣:K2 Destination Rule的Options能夠設置爲Plan just once,Slot設置爲Create slot for each destination。也能夠K2 Destination Rule的Options設置爲All at once,Slot隨意設置。 Destination Rule的Options設置爲Plan just once也就是用一個游泳池多個泳道方式來解決,K2 Destination Rule的Options設置爲All at once也就是用多個游泳池來解決問題,至於每一個游泳池多少泳道就無所謂了。
相關文章
相關標籤/搜索