Очередь не обрабатывается

Я использую php artisan queue:work --tries=3 для некоторых почтовых заданий, но в файле журнала все еще появляется эта ошибка:

[2018-11-02 03:22:02] local.ERROR: SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'attempts' at row 1 (SQL: updatejobssetreserved_at= 1541128922,attempts= 256 whereid= 767) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 22003): SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'attempts' at row 1 (SQL: updatejobssetreserved_at= 1541128922,attempts= 256 whereid= 767) at /var/www/html/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664, Doctrine\\DBAL\\Driver\\PDOException(code: 22003): SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'attempts' at row 1 at /var/www/html/project/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:144, PDOException(code: 22003): SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'attempts' at row 1 at /var/www/html/project/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:142) [stacktrace]

В действительности задание создается в таблице заданий, но не обрабатывается. Как я могу решить эту проблему?

Что это за ошибка базы данных SQLSTATE[22003] Numeric value out of range: 1264 Out of range value for column 'attempts' at row 1 Вероятно, ваше поле слишком мало для хранения данных или вы помещаете подписанный INT в поле без знака. Например, установка отрицательного значения в беззнаковом поле.

ArtisticPhoenix 02.11.2018 06:33

Вы создали таблицу failed_jobs, как показано в документации? laravel.com/docs/5.7/queues#dealing-with-failed-jobs

Travis Britz 03.11.2018 12:07

@TravisBritz Да, там нет записей.

andromeda 03.11.2018 15:05

Вы уверены, что рабочие работают с опцией --tries=3, и ни одно из заданий не имеет свойства $tries больше 255 или метода retryUntil(), определенного для класса?

Travis Britz 03.11.2018 15:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
537
2

Ответы 2

Увеличьте значение поля attempts

Хотите подробнее рассказать об этом?

andromeda 02.11.2018 06:09

@andromeda: Поскольку значение (размер) типа данных attemps меньше, чем ваш размер входного значения ИЛИ, пожалуйста, проверьте это Ссылка для получения дополнительных сведений.

user10186369 02.11.2018 06:18

Пожалуйста, объясните, почему вы думаете, что это решает проблему, и сделайте это, отредактировав ответ, а не помещая ссылку в раздел комментариев.

Nico Haase 02.11.2018 08:10

SQLSTATE[22003] Numeric value out of range: 1264 Out of range value for column 'attempts' at row 1

Похоже, ваше поле attemets установлено на TINYINT max 255, я могу сказать из-за этого бита.

 SQL: updatejobssetreserved_at= 1541128922,attempts= 256 whereid= 767

И потому что я знаю, что TinyInt может содержать 255 (потому что я только что погуглил ... ха-ха). На самом деле, вероятно, определяется как INT(1) UNSIGEND.

Итак, вы хотите изменить это на> TINYINT LIKE a NOTSOTINYINT .... :) Я имею в виду SMALLINT.

PS обманул

https://dev.mysql.com/doc/refman/5.5/en/integer-types.html

Другие вопросы по теме