/** * Process the lock * @param string $id * @return boolean */ public static function process($id) { $lock_data = lock::exists($id); if ($lock_data !== false) { $minutes = round(abs(strtotime(format::now()) - strtotime($lock_data)) / 60, 2); if ($minutes > 30) { lock::release($id); $lock_data = false; } } // we are ok to proceed if ($lock_data === false) { lock::create($id); return true; } else { return false; } }