Как иметь строгий порядок в очереди слушателей? Возможно ли это в Laravel? - PullRequest
0 голосов
/ 10 ноября 2018

В настоящее время я запускаю событие, когда пользователь должен быть удален.Например:

'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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...