/** * Test that at least a worker is working */ public function ping($config = 'default', $delay = null) { $schedule = null; if (isset($delay)) { $schedule = new DateTime(null, new DateTimeZone('UTC')); $schedule->add(new DateInterval("PT{$delay}S")); } if ($this->verbose) { if (isset($schedule)) { $this->out('Pinging in ' . $delay . ' seconds (' . $schedule->format('Y-m-d H:i:s') . ' UTC)... ', false); } else { $this->out('Pinging... ', false); } } $job = Gearman::adapter($config); $job->getClient()->setTimeout(5000); $result = @Gearman::run($config, 'li3_gearman\\Gearman::ping', isset($schedule) ? [true] : [], ['priority' => Job::PRIORITY_HIGH, 'background' => isset($schedule), 'schedule' => isset($schedule) ? $schedule : null]); if ($result || isset($schedule)) { if (isset($schedule)) { $this->out('Scheduled'); } else { $this->out($result); } return; } $this->error('ERROR'); $this->_stop(1); }