Hyperf异步队列注解AsyncQueueMessage
23-02-12 15:43
字数 557
阅读 1876
官方文档的使用示例
<?php
declare(strict_types=1);
namespace App\Service;
use Hyperf\AsyncQueue\Annotation\AsyncQueueMessage;
class QueueService
{
#[AsyncQueueMessage]
public function example($params)
{
// 需要异步执行的代码逻辑
// 这里的逻辑会在 ConsumerProcess 进程中执行
var_dump($params);
}
}
问题来了,代码逻辑中抛异常或错误会怎么样?
- 控制台没有错误信息,通过debug发现代码没有按预期执行完,原因也是奇奇怪怪的,比如我执行SQL,排查后发现orm的pdo连接对象是空的。
- 注意代码注释中的“在 ConsumerProcess 进程中执行”,队列是在独立进程中执行的,直接去掉注解,此时控制台打印了异常堆栈信息,开发调试环境让逻辑走通再加上注解。
- 跨进程、协程等,数据是隔离的,异常也是不能跨越捕获,在本进程、协程内捕获并记录日志。
- 最后安利一个swoole组件库,saber
1人点赞>
0 条评论
排序方式
时间
投票
快来抢占一楼吧
请登录后发表评论
相关推荐
文章归档
最新文章
最受欢迎
23-09-27 17:00
23-09-03 10:57
23-09-02 17:11
23-07-23 00:06
3 评论
2 评论
1 评论