我正在尝试弄清如何处理失败的作业。所以在我的Job课上,我基本上是这样的
public function handle()
{
try {
$someService = new SomeService($);
$success = $someService->makeApiRequest();
if($success) {
//do something
} else {
//trigger failed
}
} catch (\Exception $e) {
$this->failed($e);
}
}
public function failed(Exception $exception)
{
//Log information
}
这是在调用一个发出API请求的Service类。此类根据API调用是否成功返回true或false。
目前,我只是让API方法返回false。这应该意味着该作业已失败。但是,不会调用失败的函数,就Laravel而言,该作业已得到处理。
如何在看到没有异常的情况下手动触发失败的功能?
谢谢
答案 0 :(得分:4)
由于您正在使用Jobs,因此不会捕获到异常。该框架将为您完成此任务,并将作业标记为失败。
所以您的handle
方法应该是
public function handle()
{
$someService = new SomeService($);
$success = $someService->makeApiRequest();
if($success) {
//do something
} else {
trow new Exception('error message goes here');
}
}