В настоящее время я запускаю событие, когда пользователь должен быть удален.Например:
'App\Events\DeleteUserWasCalled' => [
'App\Listeners\User\DeleteUserImages',
'App\Listeners\User\RemoveFromMailchimp',
'App\Listeners\User\RemoveFromStripe',
'App\Listeners\User\RemoveOffers',
'App\Listeners\User\UpdateRelatedTablesToNull',
'App\Listeners\User\SoftDeleteUser',
],
Все эти слушатели реализуют ShouldQueue.Но моя проблема в том, что очередь не в правильном порядке.Например, 'App\Listeners\User\SoftDeleteUser'
обрабатывается до того, как 'App\Listeners\User\RemoveFromMailchimp'
.
RemoveFromMailchimp
потребуется электронная почта пользователя, но в SoftDeleteUser
установлено значение Null
.
Одно из решений, которое мне приходит в голову, - это использовать класс работы и поместить все в один класс.Но мне это не нравится.
Есть идеи, как это исправить?Порядок, который я перечислил, важен (особенно два последних слушателя)
Редактировать
class DeleteUserWasCalled
{
use SerializesModels;
public $user;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($user)
{
$this->user = $user;
}
}