Beispiel #1
0
 public function run(GearmanJob $job, &$log)
 {
     set_error_handler('gearman_error_handler');
     $workload = json_decode($job->workload(), true);
     try {
         $workload['method'] = empty($workload['method']) ? 'progress' : $workload['method'];
         Logger::info(__CLASS__ . '->' . $workload['method'] . ' got workload.', $workload);
         array_push($workload['payload'], $log);
         !($call_result = call_user_func_array([$this, $workload['method']], $workload['payload'])) && ($call_result = []);
         Logger::info('result of the ' . __CLASS__ . '->' . $workload['method'] . '.', $call_result);
     } catch (Exception $e) {
         Logger::emerg('class ' . __CLASS__ . ' throw exception:' . $e->getMessage(), $workload);
     }
     return GEARMAN_SUCCESS;
 }