Странная проблема в очереди Laravel. Возможно, я что-то не так делаю с событием и очередью.
Фон
У меня есть событие, это событие транслируется на пушер, поэтому у нас есть метод broadcastWith()
. Чтобы быть в курсе, этот метод broadcastWith()
иногда может быть большим большим массивом. Но он не такой большой, как лимит пушер-трансляции.
Я пытаюсь сохранить данные о событии в таблице jobs
. Мы получаем эту ошибку, когда это событие запускается:
Illuminate \ Database \ QueryException
SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'queue' at row 1 (SQL: insert into `jobs` (`queue`, `attempts`, `reserved_at`, `available_at`, `created_at`, `payload`) values ([{"id":246,"visit_id":337,"doctor_id":109,"patient_id":1,"enqueued_at":"2020-06-16 14:16:39","dequeued_at":null,"created_at":"2020-06-16 14:16:39","updated_at":"2020-06-16 14:16:39","patient":{"id":1,"user_id":8,"person_id":7,"created_at":"2020-05-18 15:56:31","
.......<a very big chunk of json>
Он пытается сохранить данные в queue
столбцах jobs
. Это сгенерированная таблица laravel, а тип столбца queue
- varchar(255)
. Я застрял! Почему сам Laravel пытается сохранить эти длинные json данные в таблице queue
, когда его емкость всего 255? Я уверен, что изменение типа данных и увеличение емкости столбца очереди - не решение. Итак,
Что я здесь делаю не так?