steinm6/cron-helper

Simple helper to prevent parallel cronjob execution

Installs: 97

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/steinm6/cron-helper

1.1.0 2014-10-20 11:17 UTC

This package is not auto-updated.

Last update: 2025-10-07 07:03:31 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();
}