package Ġorg . opend c . workflow . service . scheduler . job Ċ Ċ import Ġorg . opend c . workflow . service . internal . Job State Ċ import Ġorg . opend c . workflow . service . internal . Workflow ServiceImpl Ċ import Ġkotlin . random . Random Ċ Ċ /** Ċ Ġ* ĠA Ġ[ Job Ad mission Policy ] Ġthat Ġaccepts Ġjobs Ġwith Ġa Ġcertain Ġprobability . Ċ Ġ* Ċ Ġ* Ġ@ property Ġprobability ĠThe Ġprobability Ġfor Ġaccepting Ġa Ġjob . Ċ Ġ*/ Ċ public Ġdata Ġclass ĠRandom Job Ad mission Policy ( val Ġprobability : ĠDouble Ġ= Ġ 0 . 5 ) Ġ: ĠJob Ad mission Policy Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġinvoke ( scheduler : ĠWorkflow ServiceImpl ) Ġ: ĠJob Ad mission Policy . Logic Ġ= Ġobject Ġ: ĠJob Ad mission Policy . Logic Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrandom Ġ= ĠRandom ( 1 2 3 ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinvoke ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjob : ĠJob State ĊĠĠĠĠĠĠĠ Ġ): ĠJob Ad mission Policy . Ad vice Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( random . next Double () Ġ<= Ġprobability Ġ|| Ġscheduler . active Jobs . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJob Ad mission Policy . Ad vice . AD MIT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJob Ad mission Policy . Ad vice . DEN Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" Random ($ probability )" Ċ } Ċ