2017-06-05 225 views
0

我制作了一个使用队列系统(通过数据库)发送电子邮件的Laravel应用程序。这些电子邮件是Job实例,并在每3分钟左右完成一次cron-job后推送到队列中。使用nohup运行Laravel队列工作守护进程导致PDOException“一般错误:1205超出锁定等待超时”

如果我在通过SSH终端运行人员命令

/path_to_php/7.1/bin/php artisan queue:work --queue=emails_1--tries=2 --daemon 

,它开始处理的作业和发送电子邮件。很显然,我想运行这个命令并退出终端,它仍在运行,所以我使用了“nohup”方法。

nohup /path_to_php/7.1/bin/php artisan queue:work --queue=emails_1--tries=2 --daemon > storage/logs/laravel.log & 

运行在此之后,我得到一个PDOException:

PDOException: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction in ... 

我不是很熟悉这个错误,因为我从来没有遇到过这样的事情,但为什么我不能运行队列工作命令使用nohup,但可以运行它没有问题没有nohup?任何想法为什么发生这种情况?我正在使用Laravel 5.2。

请赐教。非常感谢。

+0

重复的由https://stackoverflow.com/questions/5836623/getting-lock-wait-timeout-exceeded-try-restarting-transaction-even-though -im – BDS

回答

相关问题