Scheduling Opinion

orchestrator
i_considering

#1

Hello,

We are planning to run 5 Robots(Robotics Processes) which are triggered by email on the same server sequentially. Currently we are not sure which email Robot comes first, so we are manually creating the job on first come first serve basis. One Robot could have more than 1 cycle per day (Around 10 - 12 cycles all together).

Since we are not sure which Robot gets the email,first , I thought of scheduling these robots to run 5 minutes (stop after 1 min with Cancel not Terminate) from 0 - 25 mins and 30-55 mins ( 2 times per hour during the business hour) using Cron.

If any Robot mailbox gets the email, it will be executed.Even though it gets Cancelled after 5 minutes it will be in Cancelling state till the Cycle gets completed. During this time other Robot jobs will be in Pending - Cancelled state as One Robot is already running. Once the Process gets complete and if Other Robot email is found it will be Triggered and it continues in round robin fashion.

My concern is, since so many Jobs are being created per day irrespective of email is found or not, what would be the Impact on Orchestrator and other Robotic Processes within the Orchestrator that are running on different servers.Can we expect any kind of latency on a long run.

Please suggest.


"Stop After" when Pending Job is Flawed
#2

We also have Master Robot concept in mind where we consolidate all the Robots and trigger them using Master Robot. I will get back to that in later part of discussion(if any)


#3

I don’t think that the impact is significant.

I guess that the idea is to have an intelligent scheduler or a push queue that is triggering processes as long as there is new work to do. This is set to come in the next year.

You should take a look at: Queue Based (Best) Scheduler


#4

Thanks for confirming.


#5

Update: The above idea works very well. Below is the sample if it helps any one.

For eg : One robot runs from 0-4 and 30-34 mins(Cancel after 1 min) [ From 4am to 5pm Mon - Fri]. This way robot checks for email 10 times. Similarly I was able to accommodate 5 robots on 1 server.

0 0,1,2,3,4,30,31,32,33,34 4,5,6,7,8,9,10,11,12,13,14,15,16,17 ? * MON,TUE,WED,THU,FRI *

@ovi When a job is started manually from orchestrator, is it possible to do “Stop After” or “Terminate After” without modifying the Robot Code.

Or a CRON expression for onetime job via scheduler which kicks off immediatly (DateTime.now) will also work.(not sure if it exists)

I would like to implement this scenario when the Robot triggered via scheduler fails (every day 9am) and I have to rerun the robot from where it stopped. The “terminate after” is needed to kill the job before the next day scheduler kicks off.


Kill Current Job - Scheduler
#6

For now it’s not possible to do “Stop After some time” when manually start a job, I think mainly because if you start it manually, you can also Stop it manually whenever you want. I can see that it could be useful sometimes, but i’m wondering how often it would be used.


#7

Pretty much every time you manually restart a process that has it.

It would definitely be better than to have a person manually intervene in the next N hours and would shorten the time after which you can say a process has been restored to normal (time to resolve is important not only as a metric but also peace of mind perspective).


#8

Running this on the server EOD to kill the manual jobs to allow scheduler kick off next day.

@echo off
taskkill /im UiRobot.exe
:exit