Пример сценария:
Код: Выделить всё
// 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);
}
Я пытался создать промежуточное программное обеспечение, применяемое к конечным точкам API, чтобы убедиться, что приложение завершено и выполняются функции отсрочки, но безуспешно.
Код: Выделить всё
class EnforceDeferForApi
{
public function handle(Request $request, Closure $next)
{
return $next($request);
}
public function terminate(Request $request, $response): void
{
app()->terminate();
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... i-requests
Мобильная версия