我正在使用 php gearman 客户端,并且在 gearman 服务器离线时尝试捕获/忽略任何错误:
try {
$gearman = new GearmanClient();
$gearman->addServer('apps-1');
$gearman->setTimeout(4000);
$result = $gearman->doNormal("function", "params");
} catch (Exception $e) {}
但是,这仍然输出以下错误消息:
Warning: GearmanClient::doNormal(): _client_do(GEARMAN_TIMEOUT) occured during gearman_client_run_tasks() -> libgearman/client.cc:154
我知道错误消息只是一个警告而不是致命错误,但我希望 try/catch 会抑制它。有人知道解决这个问题的方法吗?在 $gearman->doNormal() 之前放置一个 @ 符号确实会抑制错误,但我不知道这是否是政治上正确的做法。
有人可以帮我吗?