-
Notifications
You must be signed in to change notification settings - Fork 188
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_failed #1
Comments
楼主笔记记得非常详细,几乎是手把手的教读者, 要不送佛送到西, 把supervisor怎么配也全程贴出来? |
@he426100 定义事件 // 任务失败回调
'queue.failed'=> [
'application\\behavior\\MyQueueFailedLogger::logAllFailedQueues',
] 处理事件 class MyQueueFailedLogger {
/**
* @param $params \think\queue\Job
*
*/
public static function logAllFailedQueues(&$params){
$failedLog = [
'jobName' => $params->getName(),
'queueName' => $params->getQueue(),
'rawBody' => $params->getRawBody(),
'attempts' => $params->attempts(),
];
var_export(json_encode($failedLog,true));
}
} 补充: 这个笔记是针对 thinkphp-queue 的 v1.1.2 版本写的, 现在(2017-03-04)它的版本已经升级到 v1.1.3 了。这个新版本中,对于失败事件的处理逻辑上官方做了一个好的改动: thinkphp-queue 会先删除任务,调用其 failed 方法, 然后才触发这个事件。 所以我们在这个事件中只需要安心记录一下日志就好了,不再需要像 版本 v1.1.2 中那样操心究竟应该在哪一层去删除任务的问题。 |
@he426100 |
我是照着这个教程搞得,服务器是阿里云的centos7.2,幸运的是非常顺利就装好了 http://www.cnblogs.com/justphp/p/6120201.html 我现在在使用 已经稳定运行一天 |
@he426100 'queue.failed' => [
// 如果你的写法是下面这种 '类名' 形式的字符串,那么记得给 MyQueueFailedLogger 类添加一个 run 方法。
'application\\behavior\\MyQueueFailedLogger' ,
] 'queue.failed' 其实也不算是什么bug,改成 ‘queue_failed’ 更符合他们自己定义的事件命名规范而已。 |
@he426100 |
那个failed不好用, 我懒得去猜, 干脆自己处理吧, 我也就一个队列, 在fire方法里面首先执行任务, 如果执行失败,判断执行次数, 达到最大次数后调用failed方法 |
@he426100 |
@he426100 ,好的,非常感谢提供。 |
感谢楼主的笔记, 当初就想用think-queue,结果完全看不懂,还好现在入门级的操作会搞了。
任务失败始终没有进入我自己的处理, 按你的方法把queue.failed改成queue_failed也是没用哦
The text was updated successfully, but these errors were encountered: