Showing posts with label Timer Jobs. Show all posts
Showing posts with label Timer Jobs. Show all posts

Sunday 4 August 2019

Scheduled Tasks Options

Problem: Fire off code on a regular interval.

Hypothesis:  Generally code needs to be triggered and that is either thru an action such as an HTTP trigger or time based e.g. every 30 minutes run a job.  Overf the years I have seen many time based trigger mechanisms such as:

Scheduled Windows Tasks that are set to execute on a time base pattern.  Generally ends up calling a command.  Benefits are that nearly any IT department will have a VM or allow scheduled tasks to run.  

Control-M from BMC is  the next step up, basically allows for tasks to be scheduled and the jobs are monitored and can trigger alerts.  So with a scheduled task, you would need to check manually or write code to do the checking and alerting and storage.  JAMS fills a similar gap as Control-M in some organisations.  There are several competitors that have been around for years so always best to check with the client what there policy is for timer jobs.

Hangfire is for .NET and is more advanced and programmable so a good option for background tasks.

Team City - sledge hammer to crack a nut.  Tasks can be scheduled and fired off.  Useful for complex orchestration tasks with dependencies.   Jenkins and other CI/CD tools are in this group.

Old SharePoint had Timer Jobs - can't see this being of any use.

Azure Functions using a Timer Trigger for my is my first choice unless I am restricted at the client for some reason.

Thursday 17 May 2012

Timer Job Paused

Problem:  One of our environments was not running timer jobs and had 17 timer jobs in a status of "paused".
Initial Hypothesis: I replicated the pause timer jobs on a dev machine.  I removed the cache and the paused jobs were still present.  Performing a PSConfig fixed the timer job issue but broke my User Profile Service (UPS).  So not a viable fix.
Resolution: One of the engineers worked out that another engineer had played with the OWSTIMER.EXE configuration had been changed and once corrected, the time jobs flushed themselves out.