Commit 3aa6085c authored by Liu lu's avatar Liu lu

异步协程与异步日志批处理

parent 89469586
...@@ -159,7 +159,7 @@ info(1); ...@@ -159,7 +159,7 @@ info(1);
用法: 用法:
继承 \Meibuyu\Micro\Model\BaseModel 的模型: 继承 \Meibuyu\Micro\Model\BaseModel 的模型:
```` ```
class LogTrace extends BaseModel class LogTrace extends BaseModel
{ {
...@@ -183,17 +183,17 @@ info(1); ...@@ -183,17 +183,17 @@ info(1);
]; ];
} }
```` ```
得到基于主键或唯一索引作为条件的俩个批处理方法: 得到基于主键或唯一索引作为条件的俩个批处理方法:
```` ```
//批量更新,、$data为二维数组,必须包含主键或唯一索引的数据 //批量更新,、$data为二维数组,必须包含主键或唯一索引的数据
//参数二缺省为主键名,或唯一索引名 //参数二缺省为主键名,或唯一索引名
LogTrace::getModel()->batchUpdateByField($data,'request_id') LogTrace::getModel()->batchUpdateByField($data,'request_id')
//基于ON DUPLICATE KEY UPDATE 批量更新或插入 $data 必须包含主键或唯一索引的数据 //基于ON DUPLICATE KEY UPDATE 批量更新或插入 $data 必须包含主键或唯一索引的数据
LogTrace::getModel()->batchUpdateOrCreateByUniqueKey($data); LogTrace::getModel()->batchUpdateOrCreateByUniqueKey($data);
```` ```
### 6、基于@LogTrace()注解,实现异步日志队列服务 ### 6、基于@LogTrace()注解,实现异步日志队列服务
用法: 用法:
...@@ -345,7 +345,7 @@ class SyncTraceLog extends AbstractProcess ...@@ -345,7 +345,7 @@ class SyncTraceLog extends AbstractProcess
对于耗时长,加快影响效率,可以使用写队列,消费处理。 对于耗时长,加快影响效率,可以使用写队列,消费处理。
也可以将这部分逻辑放到异步协程去处理,用法: 也可以将这部分逻辑放到异步协程去处理,用法:
```` ```
http 请求test1,调用 延迟5s的continueTest(该方法已加入AsyncCoroutine注解), http 请求test1,调用 延迟5s的continueTest(该方法已加入AsyncCoroutine注解),
但接口马上返回结果。5s后,后台将continueTest方法逻辑执行输出到控制台或者写入日志 但接口马上返回结果。5s后,后台将continueTest方法逻辑执行输出到控制台或者写入日志
...@@ -378,9 +378,9 @@ class SyncTraceLog extends AbstractProcess ...@@ -378,9 +378,9 @@ class SyncTraceLog extends AbstractProcess
} }
```` ```
##### 使用须知 ##### 使用须知
```` ```
1. 给某个方法加上异步协程AsyncCoroutine注解,该方法被投放到另一个协程执行, 1. 给某个方法加上异步协程AsyncCoroutine注解,该方法被投放到另一个协程执行,
该方法的传参尽量不要使用模型对象(等连接资源对象),如果使用模型对象投递到 该方法的传参尽量不要使用模型对象(等连接资源对象),如果使用模型对象投递到
另一个协程,进行更新操作,会造成数据错乱。如要使用应禁止更新等操作 另一个协程,进行更新操作,会造成数据错乱。如要使用应禁止更新等操作
...@@ -389,4 +389,4 @@ class SyncTraceLog extends AbstractProcess ...@@ -389,4 +389,4 @@ class SyncTraceLog extends AbstractProcess
对异步协程执行的情况进行跟踪,但在异步协程里,第二个参数必须为true 对异步协程执行的情况进行跟踪,但在异步协程里,第二个参数必须为true
如 LogTraceHandler::recordProcess('记录输出数据',true); 如 LogTraceHandler::recordProcess('记录输出数据',true);
```` ```
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment