How to NOT run a Job if it is already running

One Star

How to NOT run a Job if it is already running

Hi,
I am using TOS DI to write a DI Job that will be executed once per hour via cronjob.
Sometimes it will happen that a Job will not finish executing within one hour - so cron will trigger the job even though the one from the previous hour is still running.
How can I make sure that in this case, the new job is NOT executed?
Thanks
Matt
Sixteen Stars

Re: How to NOT run a Job if it is already running

Put a mechanism at the beginning of the job to check for the presence of a file or to check a database column for a value. If the file or value are there, then do not proceed with running. If they are not, then add the file or column value and continue running the job. At the end of the job delete the file or remove the database value.
Nine Stars

Re: How to NOT run a Job if it is already running

You could make a new script that will check to see if the job is running, if the job is running the script can sleep or exit, otherwise make the script launch your job. Have the new script run in cron and turn off calling the job directly.
In your script use the ps aux to see what is running currently. Use grep and the job name to see if the job is running.
ps aux | grep jobNameHere
One Star

Re: How to NOT run a Job if it is already running

Great, thanks!!