public function handleComplete(\GearmanTask $task)
 {
     /**
      * @var ExecutionDto $taskData
      */
     $taskData = @unserialize($task->data());
     try {
         $this->tasksInspector->checkTaskDataType($taskData);
         if (!$taskData->isErrorExist()) {
             $this->tasksInspector->unsetCreatedTask($taskData->getTaskId());
             $this->tasksInspector->incrementCorrectlyExecuted();
         } else {
             if ($taskData->isCriticalError()) {
                 $this->logger->critical($taskData->getErrorMessage());
                 $this->tasksInspector->setExecutedWithError($taskData);
                 $this->tasksInspector->inspect();
                 die;
             } else {
                 $this->tasksInspector->setExecutedWithError($taskData);
             }
         }
     } catch (\Exception $e) {
         $this->logger->error($e->getMessage() . $this->loggerPostfix);
     }
     $this->logger->notice("COMPLETE: " . $task->jobHandle() . ", " . serialize($taskData));
     return null;
 }
Example #2
0
 function taskFail(\GearmanTask $task)
 {
     error_log('taskFail: ' . $task->jobHandle());
 }
Example #3
0
	/**
	 * Callback for getting updated status infromation from a worker
	 *
	 * @param GearmanTask $task
	 **/
	public function reverse_status($task)
	{
	    echo "STATUS: " . $task->jobHandle() . " - " . $task->taskNumerator() . 
	         "/" . $task->taskDenominator() . "\n";
	}
Example #4
0
 /**
  * Returns the Gearman job status for any task or all tasks
  * 
  *     // Get the status of all tasks
  *     $statuses = $request
  *
  * @param   GearmanTask  task to return status for (optional)
  * @return  array
  */
 public function status(GearmanTask $task = NULL)
 {
     if ($task !== NULL) {
         return $this->_gearman_client->jobStatus($task->jobHandle());
     } else {
         $status = array();
         foreach ($this->_task_handles as $uuid => $task) {
             $status[$uuid] = $this->_gearman_client->jobStatus($task->jobHandle());
         }
         return $status;
     }
 }