В Laravel 5.5 я создал задание в виде очереди:
class EmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
private $emailModel;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct(MyEmail $emailModel)
{
//
$this->emailModel = $emailModel;
}
// ...
}
MyEmail
- модель для хранения данных электронной почты.
- Я использую
database
драйвер в очереди.
Теперь я хочу перехватить сбойное задание (в таблице failed_jobs
) и связать их со связанным объектом MyEmail
(например, сохранить в атрибуте failed_job_id
), а затем мое приложение может вручную повторить попытку электронная почта провалилась. Как мне этого добиться?
У меня есть обходной подход, при котором я собираю все сбойные задания через таблицу failed_jobs
и проверяю полезную нагрузку один за другим, определяю, есть ли у объекта MyEmail
требуемый id
. но я не думаю, что это эффективно.