public static function processLock($singleton = false) { $processName = md5(basename($_SERVER['SCRIPT_FILENAME'])); $serverName = php_uname('n'); $key = 'process_lock_' . $processName; if ($singleton === true && GlobalCache::exists($key) !== false) { exit; } if (APPLICATION_ENV != Environment::LOCAL) { $maxTime = 10; sleep(rand(0, $maxTime)); $processName = md5(basename($_SERVER['SCRIPT_FILENAME'])); $serverName = php_uname('n'); $key = 'process_lock_' . $processName; GlobalCache::set($key, $serverName); sleep($maxTime + 5); $winner = GlobalCache::get($key); if ($winner !== $serverName) { exit; } } }