Intereting Posts
Почему строки работают как массив в PHP 5.3? Получение файла на сервере, изменение размера с помощью PHP GD2, соображения безопасности Когда следует использовать Memcache вместо Memcached? PHP – Как построить список древовидной структуры? Сравнение значений массива с другими значениями из того же массива Слушатель событий после обновления Ajax Селен: Как утверждать, что определенный элемент присутствует в определенной ячейке определенной таблицы? Отключить кеш изображения в OpenCart Как создать одноразовую ссылку для скачивания с Amazon S3? Все значения = 's' в таблице в ошибке PHP Пользовательский программный пользователь в magento работает неправильно? API Office365 – доступ к другим календарям пользователей / комнат Блокирование спама комментариев без использования captcha Проблема href в view-controler Как я могу взять массив, разделить его на два и создать два списка?

Javascript Abort POST Request on Retry / Refresh (использование HIGH CPU)

Недавно мой процессор сервера Apache был на 100% (весь день, то есть). Кажется, я нашел свою проблему.

На странице пользователь имеет возможность щелкнуть кнопку и отправить запрос POST в файл PHP на моем сервере. Иногда файл PHP занимает ДЛИННУЮ (и я имею в виду ОЧЕНЬ длинное) время, чтобы ответить или иногда вообще не реагирует:

function buttonFunction() { $.post("http://ipaddress/core/file.php",{username:username, password:pword, coins:coins}, function(data) { // Stuff }); } 

Гипотеза 1:

Я считаю, что иногда люди могут снова щелкнуть эту кнопку (пока она пытается получить результат / ответ от file.php из предыдущего клика) и, следовательно, вызывает два одновременных процесса с PHP на сервере Apache, что приводит к более высокому использованию ЦП ( Я думаю, что это то, что происходит, исправьте меня, если я ошибаюсь, потому что я новичок в этом сервере).

Гипотеза 2:

Еще одна вещь, которая может быть причиной высокой загрузки процессора (я считаю), является пользователем, обновляющим страницу, пока она все еще пытается получить результат / ответ от file.php . Через 12 секунд (без ответа / результата) появляется сообщение: «Пожалуйста, обновите, если это займет слишком много времени». В этом случае (после обновления страницы) пользователь снова пытается отправить запрос на file.php пока старый может работать, что приводит к более высокому использованию ЦП (опять же, я думаю , что так происходит, исправьте меня если я ошибаюсь, потому что я новичок в этом сервере).

Обоснование:

Я говорю это, потому что на моем сайте он может сказать, что в сети есть только 12 человек (и, возможно, 12 человек отправляют почтовые запросы), однако, когда я запускаю top команду PuTTY, чтобы посмотреть, какие процессы в настоящее время работают, она показывает почти 30-40 + процессы (некоторые принимают до 17 минут ).

Итак, есть ли способ, чтобы я мог прервать запрос при обновлении (если он все еще продолжается) или нажатием кнопки (опять же, если запрос все еще продолжается)? На самом деле, может кто-нибудь подтвердить или опровергнуть, если мои гипотезы (особенно гипотеза 2) верны – если они фактически вызывают высокий CPU? Кроме того, если у кого-то есть идея более эффективного способа, которым я могу это сделать (отправка этих запросов), это будет высоко оценено.

Изменить 1:

Я могу исправить возможную проблему, изложенную в моей первой гипотезе. Однако может ли кто-нибудь попросить подтвердить или опровергнуть, если моя вторая гипотеза верна / действительна?