這節課說說怎么觸發(trigger)robot去執行jobs,主要學習使用Jobs和Schedules的功能。
1. robot的動態分配(dynamic allocation)
在創建job的時候,可以選擇動態分配robot。確切地說,如果我們想要某個process執行n次,在選擇動態分配robot的情況下,process所在的環境(environment)里的所有robot只要空閑就會去執行該process,那些沒閑着的robot一旦閑下來了也會馬上去執行process,直到達到了要求的次數。
1) 在Orchestrator的Jobs頁面創建一個新job。
2) 在Execution Target標簽頁下面選擇Allocate Dynamically。
3) 輸入process要執行的次數。
- 如果指定的次數超過了可用的robot數量,剩下的次數會處於等待分配(Pending Allocation)的狀態,等待新的可用的robot,或者剛才的robot執行完一次process。
2. 計划觸發(trigger)一個job
除了手動觸發job,即創建一個新job,Part 1詳細講過,我們還可以計划(schedule)一個job。
1) 下面我們計划一個job,它將觸發指定環境里的所有robot,每隔1分鍾就執行某個process。
- 在Orchestrator的Schedules頁面,點+號創建一個新的Job Schedule。
- 給Schedule起個名字,選擇要安排執行的process,Timezone是選擇時區的。
- 在Trigger標簽頁下面設定計划的時間。
- 切換到Execution Target標簽頁,可以設置安排哪些robot,按照要求我們選擇All Robots。
- Actions標簽頁下面也有一些功能。
- Stop Job after可以設置在一段時間后停止計划。
- Disable Schedule at可以設置在某個日期停止計划。
- 設置好了點Create,安排上了!
2) 查看觸發的jobs。
現在我們回到Jobs頁面,可以看到環境里的3個robots已經分別執行process了。一分鍾后,三個robots會再次被觸發,去執行process。
- 通過Source列可以看出某個job是通過什么方式觸發的。
- 也可以使用篩選功能專門查看某種方式觸發的jobs。
- Manual:只顯示手動觸發的job,即在Jobs頁面創建的jobs。
- Schedule:只顯示在Schedule頁面安排的jobs。
- Agent:只顯示通過UiPath Robot直接觸發的jobs。
3) 停止計划或刪除計划。
鼠標移動到創建的那條計划上,點右側的三個點,會彈出操作選項。
- Disable可以停止計划。如果要重新啟動計划,可以選擇Enable。
- Remove會直接刪除計划,計划將從Schedule頁面移除。
- View Jobs可以查看與這個計划相關jobs。
4) 設置僅在工作日執行計划。
- 右上角點頭像,選擇Settings。
- 選擇Non-Working Days標簽頁,在出現的日歷里就可以點選非工作日。
- 在創建新計划的時候,在trigger下面選上Apply non-working days restrictions。
5) 如果我們計划一個job,在計划觸發job時,指定的robot正在執行其他process,那么計划的job會處於等待(pending)狀態,排隊等着robot空閑了再執行。
- 如果有很多個pending的job,它們會按照創建的時間順序依次執行。
3. 停止正在執行的job
1) Kill會立即強行停止當前的job,忽略正在執行的步驟,停止后,該job的狀態為Stopped。
2) Stop也可以停止job,但是必須配合Sudio里的Should Stop活動使用。
點擊Stop后,job不會立即停止,robot會繼續執行process,直到運行到Should Stop活動。
Stop和Should Stop活動使我們能安全地停止某個正在執行的process,我們應該確保在每個關鍵步驟前或后加上Should Stop活動。
使用Stop停止的job,其狀態為Successful。
下面是一個示例流程:
- 創建一個循環,robot會不斷在記事本寫入Hello UiPath Orchestrator。
- 添加一個Should Stop活動,如果在Orchestrator里點了Stop則退出循環。
- Should Stop活動返回一個布爾值(True/False),當我們沒有在Orchestrator里選擇Stop時返回False,當在Orchestrator里選擇了Stop時返回True。
- 根據Should Stop活動的返回結果,robot繼續寫入文本,或退出循環並寫入End of file。