/**
  * 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;
 }