/** * Lock job. * * Background Process doesn't internally provide a unique id * for the running process, so we'll have to add that ourselves. * We store the unique lock id in the second callback argument. */ public function lock($job) { $handle = 'uc-' . $job->name; $process = new BackgroundProcess($handle); if (!$process->lock()) { return FALSE; } $lock_id = $job->name . ':' . uniqid('bgpl', TRUE); global $user; background_process_set_process($process->handle, '__LOCKED__', $user->uid, array($job->name, $lock_id), $process->token); return $lock_id; }