Maintenance Window Scheduling (not Time Exceptions) - VisualCron - Forum

Community forum


I wanted to elaborate a little bit on this previous feature request that is resolved as far as the OP was concerned, but for me it's something I still deal with. 

Time Exceptions are great. They are. But I need something that can be better described as a 'Maintenance Window', which would act much like a Time Exception (but for ALL jobs), with the key feature being the ability to run missed tasks.

Lets Say I had 4 jobs.
Job1: Runs every 5 minutes
Job2: Runs once a day at 9 pm
Job3: Runs every 30 minutes on the hour
Job4 Runs every 2 hours (6pm, 8pm, 10pm, Midnight, etc..)

Lets say that we have a reason to take the system down or in general we just want to ensure nothing runs tonight between 8:30pm and 9:45pm because we might be installing Microsoft patches on the server, upgrading VisualCron, etc... It would be nice to be able to click a button, create a Maintenance window from X to X time, with the ability to realize at that time.... what jobs will be typically trying to run as well as the ability to mark them as 'run after maintenance window is over'.

Once i've selected a date/time for a scheduled maintenance window, I'd like the ability to pull up a list of jobs that, based on their current time/interval triggers, would be trying to run during this window. And if desired, the ability to check a box next to the ones we'd want to execute when the window is over.

In the above example, if I were to select 8:30pm today as a start time and 9:45pm today as the end time, I would expect to see a list of Job1, Job2, and Job3 and maybe the Trigger Name(s) or descriptions that are causing them to show up in the list along with checkboxes next to each of them for whether I want to have them run once immediately after the maintenance window is over. This list would have to be dynamic as other jobs may get added today or new triggers created/modified/enabled that might add more to that affected list. If these events were to occur, i'd expect a re-enabled trigger, new trigger, or modified trigger that falls within the maintenance window would cause a popup reminder (with optional checkbox to run after Maintenance) relating to the Maintenance Window to inform the user.

Does this make sense?

One other thing that would actually make my entire year..... would be also related to maintenance. What if you've got 2 servers and you do not care one bit about which server is actually doing the work, though it would be one server at any given time DOING all the work. They are literally identical. You set up the jobs on one (ServerA), it does all the work all the time. The 2nd server (ServerB) is on the same subnet, uses the same Users/config/etc... because it's keeping it's config synched with ServerA. There is literally nothing different about these 2 servers other than their Name/IP. I then select a Maintenance Window or technically you could call it a 'Failover Time' for 8:30pm this evening that would have this effect:

At 8:30pm tonight, ServerA would stop triggering any new jobs but would finish jobs it's already got running. ServerB would immediately be the server running all newly triggered jobs. At some point after the 8:30pm timeframe ServerA would finish running any jobs kicked off prior to 8:30pm and then a Notification would be Triggered (could be e-mail, popup, etc.. don't care). We would then know that ServerA is ok to have maintenance done. We can install Microsoft patches, reboot the server as many times as we see fit, etc... Now ServerB would be the active server doing all work. It could stay this way until you have a reason to take ServerB down for maintenance. At which point the reverse process would happen. Failover/Maintenance time could be scheduled for ServerB, and then flip everything over to ServerA (while letting ServerB finish up it's tasks).

I know what you're thinking, that's what Clusters are for. But this goes a step further ensuring there's no interruption in job processing. Cluster Failover requires that you stop jobs from running while the failover occurs and what i'm suggesting is a cluster-free setup where VisualCron is the actual cluster manager and not Microsoft Failover Clustering. Let VisualCron handle it all, it could do it cleaner I think.

It would of course have to be robust enough to be able to still communicate/synch jobs when you upgrade one VC server while it's not the active one and then the newly upgraded one would take over and then you could upgrade the other. i'm thinking 100% uptime of VC here.

thoughts? :)

EDIT: I just noticed this post about master/slave/agent stuff from January. I think this goes along with what I want. VisualCron handling the failover between a Master/Slave. We'd need to centrally (UNC Path) store some of our files for jobs that require it instead of using local 😨 drive references, but if we could do this it would be great: 

Thanks for the request, we will look at this at the same time we look at the Master/Slave functionality.
Please like  VisualCron on facebook!
Scroll to Top