So I've timed my controller method in Laravel with both microtime(true) and getrusage, and checked the actual data responded - it processes my request in ~0.2s, so quite fast.
The actual TTFB for it to respond back to my app is a massive 12 seconds.
Given the data is obtained and returned so quickly, where could this bottleneck be?
I'm aware it's quite a vague question, but I honestly have no idea what could be doing this. Has anyone encountered similar? Included the controller method below, in case it's handy. Just using a standard Axios get() request to run the query.
public function authenticate(Request $request){
    $credentials = $request->only('email', 'password');
    try {
        if (! $token = JWTAuth::attempt($credentials)) {
            return response()->json(['error' => 'invalid_credentials'], 401);
        }
    } catch (JWTException $e) {
        return response()->json(['error' => 'could_not_create_token'], 500);
    }
    $user = User::where('email',$request->email)->first();
    if($request->invitationIdIfExists){
        $invitation = Invitation::find($request->invitationIdIfExists);
        if($invitation->recipient_email == $user->email){
            $request->headers->set('Authorization', 'Bearer '.$token);
        
            Helper::processInvitation($invitation, $user);
        }
    }
    $user->touch();
    $user->token = $token;
    $user->load(['accounts', 'minTodoDays', 'minNotifications']);
    $user->todo_days = $user->minTodoDays;
    $user->notifications = $user->minNotifications;
    unset($user->minTodoDays);
    unset($user->minNotifications);
    $invitationIfExists = Invitation::where('recipient_email', $user->email)->where('completed', 0)->first();
    if($invitationIfExists){
        $user->invitedAccount = $invitationIfExists->account;
    }
    return $user;
}
via Chebli Mohamed

Aucun commentaire:
Enregistrer un commentaire