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

queue:work 命令下的失败事件 #10

Closed
coolseven opened this issue Feb 13, 2017 · 1 comment
Closed

queue:work 命令下的失败事件 #10

coolseven opened this issue Feb 13, 2017 · 1 comment

Comments

@coolseven
Copy link
Contributor

coolseven commented Feb 13, 2017

你好,在执行 queue:work 命令时,发现超过最大尝试次数的事件不可用。
我的命令行参数是

php think queue:work --queue helloQueue --tries 2

application\ tags.php 这个配置文件中,设置的任务失败的事件的配置是:

  //  配置任务失败事件处理 
    'queue.failed'=> [
        'application\\index\\behavior\\QueueFailedHandler',
    ],

看了下源代码,
think-queue\src\queue\Worker.php 类中,处理该事件的代码为:

    /**
     * Log a failed job into storage.
     * @param  \Think\Queue\Job $job
     * @return array
     */
    protected function logFailedJob(Job $job)
    {
        if (Hook::listen('queue.failed', $job, null, true)) {
            $job->delete();
            $job->failed();
        }

        return ['job' => $job, 'failed' => true];
    } 

根据TP官网中对行为的 文档
这里的'queue.failed'标签是不是需要改成 'queue_failed' ?

另外,think-queue 内部并没有内置这个‘queue.failed’事件,用户如果想要使用这个功能的话需要手动在 application\tags.php 这个配置文件中添加该事件标签,否则不会触发消费者的 failed() 方法。建议在readme 中补充一下。
谢谢。

@coolseven coolseven changed the title Work queue:work 命令下的超出最大尝试次数的事件配置不可用 Feb 13, 2017
@coolseven coolseven changed the title queue:work 命令下的超出最大尝试次数的事件配置不可用 queue:work 命令下的失败事件的名称与最新版标准不一致 Mar 4, 2017
@coolseven coolseven changed the title queue:work 命令下的失败事件的名称与最新版标准不一致 queue:work 命令下的失败事件 Mar 4, 2017
@coolseven
Copy link
Contributor Author

最新的commit 已经修复该issue了,issue关闭。

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

1 participant