Что на самом деле измеряет php max_execution_time? - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть веб-страница, на которой есть кнопка, которая при щелчке выполняет одну функцию php.

Когда пользователь щелкает по ней, для возврата страницы требуется 51081 мс.51376 мс это что-то, что классифицируется как «Ожидание» на вкладке «Сеть» в моих инструментах разработчика Firefox.

Значение max_execution_time, объявленное в моем файле php.ini, равно 30. Я могу видеть это и в своем файле phpinfo.

Мой вопрос: почему мой сценарий не истекает через 30 секунд?Что на самом деле измеряет max_execution_time?

Изменить, чтобы включить код;

public function getSlotsByUser (Request $request) {

    $event_id = $request->event_id;
    $user_id = substr($request->user, 4);

    $event = Event::find($event_id);

    $user = User::find($user_id);

    $slots = TimeSlot::where('event_id',$event_id)->get();

    $userSlots = $user->slots;

    foreach($userSlots as $userSlot) {

       $guest = Guest::where('slot_id',$userSlot->id)->where('user_id',$user->id)->first();

       if($guest) {
            $userSlot->guest_id = $guest->id;
            $userSlot->guest_name = $guest->name . ' ' . $guest->surname;
        }
        else {
            $userSlot->guest_id = NULL;
            $userSlot->guest_name = NULL;
        }

        $userSlotIds[] = $userSlot->id;

    }

    $days = new DatePeriod(
         new DateTime($event->start_time),
         new DateInterval('P1D'),
         (new DateTime($event->end_time))->modify('+1 day')
    );

    return view('admin.calendar',compact('event','slots','user','userSlots','userSlotIds','days'));

}

Я понимаю, какие части представляют запросы с использованием Eloquent.Так же мой код идет;

выполнение PHP

выполнение PHP

запрос к базе данных

запрос к базе данных

запрос к базе данных

выполнение php ... и т.д.?

Может кто-нибудь объяснить мне, что происходит "под капотом"?

1 Ответ

0 голосов
/ 14 февраля 2019

set_time_limit говорит:

max_execution_time влияет только на время выполнения самого скрипта.Любое время, потраченное на действия, которые происходят вне выполнения сценария, такие как системные вызовы с использованием system (), потоковые операции, запросы к базе данных и т. Д., Не учитывается при определении максимального времени выполнения сценария.Это не верно для Windouws, где измеренное время является действительным.

Так что в Linux учитывается только время, используемое для выполнения php-кода.

waiting на вкладке сетипросто говорит вам, что вы не получили никакого ответа от веб-сервера до сих пор.

...