Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

logFailedJob #9

Closed
327 opened this issue Aug 7, 2018 · 3 comments
Closed

logFailedJob #9

327 opened this issue Aug 7, 2018 · 3 comments

Comments

@327
Copy link
Contributor

327 commented Aug 7, 2018

今天发现部分 JOB 处理失败后,laravel-CMQ 尝试记录此 JOB 到数据库,信息如下:
PDOException: SQLSTATE[HY000] [2002] No such file or directory in /data/wwwroot/sdgroup.aidong.ai/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:46 Stack trace: #0 /data/wwwroot/sdgroup.aidong.ai/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(46): PDO->__construct('mysql:host=loca...', 'forge', '', Array) #1 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(65): Doctrine\DBAL\Driver\PDOConnection->__construct('mysql:host=loca...', 'forge', '', Array) #2 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\Database\Connectors\Connector->createPdoConnection('mysql:host=loca...', 'forge', '', Array) #3 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php(24): Illuminate\Database\Connectors\Connector->createConnection('mysql:host=loca...', Array, Array) #4 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(183): Illuminate\Database\Connectors\MySqlConnector->connect(Array) #5 [internal function]: Illuminate\Database\Connectors\ConnectionFactory->Illuminate\Database\Connectors\{closure}() #6 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(883): call_user_func(Object(Closure)) #7 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(445): Illuminate\Database\Connection->getPdo() #8 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(640): Illuminate\Database\Connection->Illuminate\Database\{closure}('insert into fa...', Array) #9 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(607): Illuminate\Database\Connection->runQueryCallback('insert into fa...', Array, Object(Closure)) #10 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(450): Illuminate\Database\Connection->run('insert into fa...', Array, Object(Closure)) #11 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(404): Illuminate\Database\Connection->statement('insert into fa...', Array) #12 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php(32): Illuminate\Database\Connection->insert('insert into fa...', Array) #13 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2133): Illuminate\Database\Query\Processors\Processor->processInsertGetId(Object(Illuminate\Database\Query\Builder), 'insert into fa...', Array, NULL) #14 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php(62): Illuminate\Database\Query\Builder->insertGetId(Array) #15 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(187): Illuminate\Queue\Failed\DatabaseFailedJobProvider->log('cmq', 'watch-gps', '{"displayName":...', 'Illuminate\\Queu...') #16 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(137): Illuminate\Queue\Console\WorkCommand->logFailedJob(Object(Illuminate\Queue\Events\JobFailed)) #17 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(348): Illuminate\Queue\Console\WorkCommand->Illuminate\Queue\Console\{closure}(Object(Illuminate\Queue\Events\JobFailed)) #18 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(199): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}('Illuminate\\Queu...', Array) #19 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(172): Illuminate\Events\Dispatcher->dispatch('Illuminate\\Queu...', Array, false) #20 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/FailingJob.php(36): Illuminate\Events\Dispatcher->fire(Object(Illuminate\Queue\Events\JobFailed)) #21 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(420): Illuminate\Queue\FailingJob::handle('cmq', Object(Freyo\LaravelQueueCMQ\Queue\Jobs\CMQJob), Object(Illuminate\Queue\MaxAttemptsExceededException)) #22 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(386): Illuminate\Queue\Worker->failJob('cmq', Object(Freyo\LaravelQueueCMQ\Queue\Jobs\CMQJob), Object(Illuminate\Queue\MaxAttemptsExceededException)) #23 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(311): Illuminate\Queue\Worker->markJobAsFailedIfAlreadyExceedsMaxAttempts('cmq', Object(Freyo\LaravelQueueCMQ\Queue\Jobs\CMQJob), 3) #24 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(267): Illuminate\Queue\Worker->process('cmq', Object(Freyo\LaravelQueueCMQ\Queue\Jobs\CMQJob), Object(Illuminate\Queue\WorkerOptions)) #25 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(113): Illuminate\Queue\Worker->runJob(Object(Freyo\LaravelQueueCMQ\Queue\Jobs\CMQJob), 'cmq', Object(Illuminate\Queue\WorkerOptions)) #26 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(101): Illuminate\Queue\Worker->daemon('cmq', 'watch-gps', Object(Illuminate\Queue\WorkerOptions)) #27 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(85): Illuminate\Queue\Console\WorkCommand->runWorker('cmq', 'watch-gps') #28 [internal function]: Illuminate\Queue\Console\WorkCommand->fire() #29 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array) #30 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() #31 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure)) #32 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Container/Container.php(539): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL) #33 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Console/Command.php(182): Illuminate\Container\Container->call(Array) #34 /data/wwwroot/sdgroup.aidong.ai/vendor/symfony/console/Command/Command.php(251): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle)) #35 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Console/Command.php(167): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle)) #36 /data/wwwroot/sdgroup.aidong.ai/vendor/symfony/console/Application.php(946): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #37 /data/wwwroot/sdgroup.aidong.ai/vendor/symfony/console/Application.php(248): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #38 /data/wwwroot/sdgroup.aidong.ai/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #39 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(122): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #40 /data/wwwroot/sdgroup.aidong.ai/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #41 {main} Next Doctrine\DBAL\Driver\PDOException: SQLSTATE[HY000] [2002] No such file or directory in /data/wwwroot/sdgroup.aidong.ai/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:50 Stack trace: #0 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(65): Doctrine\DBAL\Driver\PDOConnection->__construct('mysql:host=loca...', 'forge', '', Array) #1 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php(44): Illuminate\Database\Connectors\Connector->createPdoConnection('mysql:host=loca...', 'forge', '', Array) #2 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php(24): Illuminate\Database\Connectors\Connector->createConnection('mysql:host=loca...', Array, Array) #3 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php(183): Illuminate\Database\Connectors\MySqlConnector->connect(Array) #4 [internal function]: Illuminate\Database\Connectors\ConnectionFactory->Illuminate\Database\Connectors\{closure}() #5 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(883): call_user_func(Object(Closure)) #6 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(445): Illuminate\Database\Connection->getPdo() #7 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(640): Illuminate\Database\Connection->Illuminate\Database\{closure}('insert into fa...', Array) #8 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(607): Illuminate\Database\Connection->runQueryCallback('insert into fa...', Array, Object(Closure)) #9 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(450): Illuminate\Database\Connection->run('insert into fa...', Array, Object(Closure)) #10 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Connection.php(404): Illuminate\Database\Connection->statement('insert into fa...', Array) #11 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php(32): Illuminate\Database\Connection->insert('insert into fa...', Array) #12 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2133): Illuminate\Database\Query\Processors\Processor->processInsertGetId(Object(Illuminate\Database\Query\Builder), 'insert into fa...', Array, NULL) #13 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php(62): Illuminate\Database\Query\Builder->insertGetId(Array) #14 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(187): Illuminate\Queue\Failed\DatabaseFailedJobProvider->log('cmq', 'watch-gps', '{"displayName":...', 'Illuminate\\Queu...') #15 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(137): Illuminate\Queue\Console\WorkCommand->logFailedJob(Object(Illuminate\Queue\Events\JobFailed)) #16 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(348): Illuminate\Queue\Console\WorkCommand->Illuminate\Queue\Console\{closure}(Object(Illuminate\Queue\Events\JobFailed)) #17 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(199): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}('Illuminate\\Queu...', Array) #18 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(172): Illuminate\Events\Dispatcher->dispatch('Illuminate\\Queu...', Array, false) #19 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/FailingJob.php(36): Illuminate\Events\Dispatcher->fire(Object(Illuminate\Queue\Events\JobFailed)) #20 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(420): Illuminate\Queue\FailingJob::handle('cmq', Object(Freyo\LaravelQueueCMQ\Queue\Jobs\CMQJob), Object(Illuminate\Queue\MaxAttemptsExceededException)) #21 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(386): Illuminate\Queue\Worker->failJob('cmq', Object(Freyo\LaravelQueueCMQ\Queue\Jobs\CMQJob), Object(Illuminate\Queue\MaxAttemptsExceededException)) #22 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(311): Illuminate\Queue\Worker->markJobAsFailedIfAlreadyExceedsMaxAttempts('cmq', Object(Freyo\LaravelQueueCMQ\Queue\Jobs\CMQJob), 3) #23 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(267): Illuminate\Queue\Worker->process('cmq', Object(Freyo\LaravelQueueCMQ\Queue\Jobs\CMQJob), Object(Illuminate\Queue\WorkerOptions)) #24 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(113): Illuminate\Queue\Worker->runJob(Object(Freyo\LaravelQueueCMQ\Queue\Jobs\CMQJob), 'cmq', Object(Illuminate\Queue\WorkerOptions)) #25 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(101): Illuminate\Queue\Worker->daemon('cmq', 'watch-gps', Object(Illuminate\Queue\WorkerOptions)) #26 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(85): Illuminate\Queue\Console\WorkCommand->runWorker('cmq', 'watch-gps') #27 [internal function]: Illuminate\Queue\Console\WorkCommand->fire() #28 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array) #29 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() #30 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure)) #31 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Container/Container.php(539): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL) #32 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Console/Command.php(182): Illuminate\Container\Container->call(Array) #33 /data/wwwroot/sdgroup.aidong.ai/vendor/symfony/console/Command/Command.php(251): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle)) #34 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Console/Command.php(167): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle)) #35 /data/wwwroot/sdgroup.aidong.ai/vendor/symfony/console/Application.php(946): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #36 /data/wwwroot/sdgroup.aidong.ai/vendor/symfony/console/Application.php(248): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #37 /data/wwwroot/sdgroup.aidong.ai/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #38 /data/wwwroot/sdgroup.aidong.ai/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(122): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #39 /data/wwwroot/sdgroup.aidong.ai/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #40 {main} [] []

当 job 处理成功的情况下,我才会 调用 job->delete(). 等设置的沉默时间到期后,会再次处理此 job,在这种情况下,是否可以关闭 laravel 框架记录失败 job 的功能?如果可以的话,请指点下如何关闭。
多谢

@freyo
Copy link
Owner

freyo commented Aug 8, 2018

config/queue.php 里设置 failed.table = null

@327
Copy link
Contributor Author

327 commented Aug 8, 2018

多谢,php /data/wwwroot/sdgroup.aidong.ai/artisan queue:work cmq --queue=watch-gps --tries=3
这里的--tries是指单个任务,最多被尝试执行3次吗?如果我在构造队列 job 时,指定了maxTries和 timeout参数,是否 timeout 和 maxTries 优先级最高?

@freyo
Copy link
Owner

freyo commented Aug 8, 2018

是的,单个任务最大执行3次。Job 里的优先级最高

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants