3

我的网站将电子邮件发送到jobs表中。我认为电子邮件服务器有问题,它无法发送电子邮件,因此作业卡在作业表中。现在可能有太多工作,我收到此错误消息:

Next exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'attempts' at row 1 (SQL: update `jobs` set `reserved_at` = 1510263884, `attempts` = 256 where `id` = 342)' in /var/www/vhosts/parcgilley.com/httpdocs/vendor/laravel/framework/src/Illuminate/Database/Connection.php:647
#0 /var/www/vhosts/parcgilley.com/httpdocs/vendor/laravel/framework/src/Illuminate/Database/Connection.php(607): Illuminate\Database\Connection->runQueryCallback('update `jobs` s...', Array, Object(Closure))
#1 /var/www/vhosts/parcgilley.com/httpdocs/vendor/laravel/framework/src/Illuminate/Database/Connection.php(477): Illuminate\Database\Connection->run('update `jobs` s...', Array, Object(Closure))
#2 /var/www/vhosts/parcgilley.com/httpdocs/vendor/laravel/framework/src/Illuminate/Database/Connection.php(416): Illuminate\Database\Connection->affectingStatement('update `jobs` s...', Array)

所以我想知道如何刷新所有排队的作业以清除表?我无法访问数据库以删除表中的数据,那么有任何命令行可以这样做吗?我没有失败的队列表。

4

3 回答 3

7

假设您使用的是数据库驱动程序,您可以使用:

DB::table('jobs')->delete();

删除所有作业。

另一件事是您应该始终在设置了尝试的情况下运行队列工作者:

php artisan queue:work --tries=3

还要记住,每当您更改应用程序代码时,都应该重新启动您的工作人员:

php artisan queue:restart

(我假设您使用将再次启动工人的主管)。

于 2017-11-09T22:33:23.500 回答
2

您可以使用

php工匠修补匠

接着

DB::table('jobs')->delete();

这项工作!

于 2021-02-08T01:55:28.587 回答
1

您可以使用 clear 命令:

php artisan queue:clear
于 2021-11-09T13:31:30.833 回答