cancel
Showing results for 
Search instead for 
Did you mean: 

Queuing and retry mechanism on schedule

Wang_LapHon
Level 2
Scenario as below If there are two schedules "Schedule A" & "Schedule B" and both having object with foregroun run mode. "Schedule A" run at 1:00 pm "Schedule B" run at 1:30 pm If "Schedule A" run more than 30 mins.  "Schedule B" will be marked as failed with message "Runtime Resource xxxxxx is too busy". Is it possible to allow "Schedule B" to be queued up or re-try the schedule after failure This enhancement allow us to better ultilize the robot and handle fail case 
10 REPLIES 10

TomCirone
Level 6
We coded a program that checks the sql table for any failed missed schedules, adds it to a queue, and then it continually tries to run the process until it successfully runs.  It's been working pretty well for us.

HarishM2
Level 6
Hi Tom,   can you elaborate on how you coded for  failed or missed schedule  in the queue? not sure how you are calling the failed queue ?

Ravindersaini
Level 7
While creating your scheduler for Schedule A , we can add Schedule B to run on completion of Scheduler A. 
So when you create task for Schedule A, you will see option 'On Completion' there you can give Task which will run Process/Scheduler B.

Attached snapshot for more details.

------------------------------
Ravinder saini
Consultant
Ernst & Young India
Asia/Kolkata
------------------------------

Hi @Ravindersaini​,

The feature you mention regarding On Complete/On Exception is very useful, but the problem is that Lap Hon's need is to re-run a Schedule that was missed and there's currently no interaction between Schedules. What you're referring to is between tasks within the same schedule.

Still, I wonder if the suggestion might not be a good workaround. Instead of scheduling the two processes on separate schedules, maybe they could be combined together into the same schedule. The tasks that were previously in Schedule A would be the first few tasks and Schedule B's tasks would be the latter half of a combined Schedule AB.

------------------------------
Dave Morris
3Ci @ Southern Company
Atlanta, GA
------------------------------

Dave Morris, 3Ci at Southern Company

@TomCirone

What did you use to code that? Did you guys make up something quick or a full-on app?​

------------------------------
Dave Morris
3Ci @ Southern Company
Atlanta, GA
------------------------------

Dave Morris, 3Ci at Southern Company

Hi, 

Even though I also access the dateabase and do SQL queries towards it, BluePrism acatually provide another option to get a status report.

AutomateC.exe /sso /viewschedreport { days } { date } /dbconnname { database } /format csv 

Give the ouput : 

Type,Status,Name,Instance,Start,End,Termination Reason

Otherwize I gues you find most of the important stuff in BPAScheduleLogEntry table in the database. Personally I'm trying to move away from accessing the db directly. The output could be "piped" to your homebuilt re-scheduler code. 

Just as an option. 

Thank you,

Håkan Engman 



------------------------------
Hakan Engman
Automation engineer
Teliacompany.com
Europe/Stockholm
------------------------------

@Dave Morris  Sorry--Just saw this message now 

It's part of a BluePrism process that runs 24 *7. It uses AutomateC commands + Database queries + BluePrism queue

First it queries the database tables BPAScheduleLogEntry and  BPAScheduleLog to find any schedules that have been missed.  These could have been missed for any reason: machine offline, conflicting schedule, etc.  It adds the schedule name to a queue "Missed Schedules". 

Second, it  takes the queue items and tries to trigger the process via AutomateC.exe.  The return message only means it's added to the queue, not that it actually triggered. 

Finally, in every process we callan object that we call called "Close Missed Schedules".  This gets the Schedule name (via searching the session ID in the database). It then closes any pending items in the queue "Missed Schedules" .  This ensures the schedule won't be re-run.

------------------------------
Tom Cirone
Application Developer
Essity
America/New_York
------------------------------

Ha, wow! I guess the Communities Messaging feature came through for us? I assume my tagging your name caused a message to be put there. Nice. +1 for the new Forum! 😃

That makes sense. I have been considering making a Controller app ever since I saw that Ami Barrett made one. I don't like the idea of relying on a Blue Prism Runtime Resource being available to run such a process for the purpose of making sure other processes have run. We have some similar utilities, including some queries that @BrentonWestwood ​​set up which keep us aware of any failed schedules and stuff like that. We haven't implemented any queue logic like you described. Have you encountered any unintended situations from doing that, such as schedules being run more than they're supposed to?

------------------------------
Dave Morris
3Ci @ Southern Company
Atlanta, GA
------------------------------

Dave Morris, 3Ci at Southern Company

​Yes that's exactly what happened with the forum!

Yeah that's definitely a fair point about relying on another RR.  The whole process does a lot of other stuff (mail distributing, alerting, restarting machines, event based triggering, etc.).  When that process goes down generally someone notices within a couple hours when they are doing something that uses it.  I've also thought about lifting into a .NET app that runs as a service to free up the license.  The trickiest part I imagine is once you get into anything with BP queues.  It's going to be quite an ugly SQL query to add a queue item via the database directly.  

We encountered schedules running multiple times in the beginning.  We fixed it by putting the "Closed Missed Schedules" both at the beginning and end of the process.  I don't think it's happened since but not 100% sure.

------------------------------
Tom Cirone
Application Developer
Essity
America/New_York
------------------------------