Laravel verzögert API-AnfragenPhp

PHP-Programmierer chatten hier
Guest
 Laravel verzögert API-Anfragen

Post by Guest »

Ist es möglich, Verzögerungsfunktionen für API-Anfragen zu verwenden? Ich kann defer auf meiner Website ausführen, aber über die API funktioniert es überhaupt nicht.
Beispielszenario:

Code: Select all

// Endpoint accessible through browser https://mywebsite.com/something
public function index(Request $request): void
{
Log::info('Before response sent');
defer(function () {
Log::info('Deferred task executed');
});
Log::info('After response sent');
}

// Endpoint accessible through API request https://mywebsite/api/something
public function search(Request $request): JsonResponse
{
Log::info('Before response sent.');
defer(function () {
Log::info('Deferred task executed.');
});
Log::info('After response sent.');

return response()->json(true);
}
Dieses Beispiel funktioniert nur, wenn über den Browser auf den Endpunkt zugegriffen wird. Mit dem API-Endpunkt wird mithilfe von Tests oder Postman die Nachricht „Verzögerte Aufgabe ausgeführt.“ nie geschrieben.
Ich habe versucht, eine Middleware zu erstellen, die auf die API-Endpunkte angewendet wird. um sicherzustellen, dass die App beendet wird, damit die Verzögerungsfunktionen ausgeführt werden, aber kein Erfolg.

Code: Select all

class EnforceDeferForApi
{
public function handle(Request $request, Closure $next)
{
return $next($request);
}

public function terminate(Request $request, $response): void
{
app()->terminate();
}
}
Irgendeine Lösung?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post