Exemplo n.º 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;
 }
Exemplo n.º 2
0
 function gearman_error_handler($err_no, $err_str, $err_file, $err_line)
 {
     $logger = Logger::withName('system');
     $logger->error("code({$err_no}) {$err_file} + {$err_line}: {$err_str}");
 }