Я создаю небольшое приложение PHP / Javascript, которое выполнит некоторую обработку для всех городов во всех штатах США. Это округляет до (52 x 25583) = 1330316 или менее элементов, которые необходимо обработать.
Обработка каждого элемента займет около 2-3 секунд, поэтому возможно, что пользователю придется смотреть на эту страницу в течение 1-2 часов (или, по крайней мере, минимизировать ее, пока он делает другие вещи). *
Чтобы дать пользователю максимальную обратную связь, я думал об управлении обработкой страницы с помощью javascript, в основном примерно так:
var current = 1;
var max = userItems.length; // 1330316 or less
process();
function process()
{
if (current >= max)
{
alert('done');
return;
}
$.post("http://example.com/process", {id: current}, function()
{
$("#current").html(current);
current ++;
process();
}
);
}
В html я получу следующее сообщение о состоянии, которое будет обновляться при каждом вызове функции process()
:
<div id="progress">
Please wait while items are processed.
<span id="current">0</span> / <span id="max">1330316</span> items have been processed.
</div>
Надеюсь, вы все увидите, как я хочу, чтобы это работало.
Мое единственное беспокойство заключается в том, что, если эти 1330316 запросов одновременно отправляются на сервер, существует ли вероятность, что это приведет к сбою / сбою сервера? Если так, если я добавлю дополнительное ожидание в 2 секунды на каждый запрос, используя sleep(3);
в PHP-коде на стороне сервера, это улучшит ситуацию?
Или существует другой механизм для отображения пользователю быстрой обратной связи, такой как опрос, который не требует, чтобы я связывался с apache или сервером?