Skip to content

自定义切面,同时发起多个请求,最后一个请求没回包 #19

@NicholasChan1025

Description

@NicholasChan1025

自定义一个 @around("within(ESD\Core\Server\Port\IServerPort+) && execution(public **->onHttpRequest(*))")的切面
用来验证token的合法性。
当客户端同时发起多个请求,服务端通过打印log发现,当所有请求token都合法的时候,切面执行到$invocation->proceed();
最后一个请求,无法进入RouteAspect切面,导致没有回包数据
这个场景是在work_num = 1的时候出现的,当work_num>1则没问题
按照我自己的理解:
当work_num = 1的时候,所有请求都是由这个work进程来处理,某些原因或bug导致链路没执行完成
当work_num >1 请求分散给不同的work进程,相当于每个进程都只处理了一个请求,所以没复现这个情况
但是当高并发的时候,不可避免每个进程还是得同时处理多个请求,也就是这个情况有很大几率复现

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions