steinm6/cron-helper

Simple helper to prevent parallel cronjob execution

1.1.0 2014-10-20 11:17 UTC

This package is not auto-updated.

Last update: 2024-06-04 00:32:48 UTC


README

Simple helper to prevent parallel cronjob execution

Installation

Composer

Require "steinm6/cron-helper": "dev-master"

Manually

Just include the file src/CronHelper.php

Usage

Initialize the CronHelper with a filename. The CronHelper will use this filename for locking up.

$cron = new CronHelper('myfilename');

To lock the execution call the lock()-function. To unlock the cronjob use the unlock()-function. You may determine how long the cronjob was locked by calling the getLockDuration()-function, which returns the time passed since the lock() in seconds.

Here is a basic example on how to use the CronHelper:

use steinm6\CronHelper\CronHelper;

// Initialize CronHelper
$cron = new CronHelper('lockfile-name');

// lock this job
if ($cron->lock()) {
	foreach($x as $y){
		// You might want to reset the timer, to prevent running into the unlock() below...
		$cron->resetTimer();
		
		// Do something
		sleep(10);
	}
	$cron->unlock();
} else {
  // If the lock persists for 3600 seconds, something went wrong. Remove the lock so that the next cronjob is executed.
	if ($cron->getLockDuration() > 3600)
		$cron->unlock();
}