что свойства класса Job сериализуются). Может есть какой-нибудь другой способ выполнить коллбек после успешного выполнения джобы?
можно в последних верисях, даже можно job сделать ввиде callback
В доке не совсем то. Instead of dispatching a job class to the queue, you may also dispatch a closure. Мне нужно не вместо класса Job диспатчить Closure. А выполнять коллбек после успешного выполнеиня Job. То есть, сейчас я пытаюсь передать в параметры Job Closure - и получаю ошибку сериализации [2021-08-25 13:09:14] local.ERROR: Serialization of 'Closure' is not allowed {"exception":"[object] (Exception(code: 0): Serialization of 'Closure' is not allowed at /var/www/vendor/laravel/framework/src/Illuminate/Queue/Queue.php:158)
в твоем случае или использовать Batch (там уже все это интегрировано, и через callback можно ловить ошибки, выполнение и т.д.) или слушать события и ловить свой job а начиная с версии laravel 6.x у job есть посредники, как у http kernel
а что он у тебя не может сериализовать, как версия Laravel?
Laravel Framework 8.52.0 В Job все свойства класса сериализиуются. Нельзя передавать несереализуеммые объекты. function () { Log::info("My test callback runned."); } Вот это он не может сериализовать, что логично
бросай события и подпишись на них, или оберни в посредника
еще вариант, передать в handle job нужные тебе зависимости, т.к. handle будет вызван через контейнер
Обсуждают сегодня