Таймер запуска в переполнении стека

Я постараюсь не быть полным нубом, задавая этот вопрос, и я надеюсь, что смогу объяснить его достаточно подробно. Я искал везде, где мог, и пробовал все сценарии и примеры, которые мог найти, но я не смог сделать эту работу. Не берите в голову, что я не настолько опытен в PHP, Java и программировании баз данных. Я пытаюсь достичь следующего:

Я обновляю базу данных (Access) каждый раз, когда часть проходит через машину. Я фиксирую текущий номер детали, а также метку времени. Что мне нужно, чтобы иметь три запущенных таймера на стороне сервера (потому что на клиенте он сбрасывается при каждом обновлении страницы). Два будут бесконечными, а один — в установленное время, скажем, 5 минут. Если в базе данных обнаружено изменение, то 5-минутный таймер сбрасывается, и один из таймеров запускается. Этот таймер будет работать до тех пор, пока не будет обнаружено изменение (введена другая часть). Однако если в течение 5 минут ничего не происходит, первый таймер останавливается, а второй запускается до тех пор, пока что-то снова не будет введено в базу данных.

Если кто-то может просто указать мне правильное направление с этим, я буду очень благодарен. Я надеюсь, что объяснил это правильно.

Заранее спасибо.

0

Решение

Я думаю, что вы делаете это немного сложнее, чем то, что нужно сделать, в основном думая о них как о «таймерах бега».

В этом случае я бы сохранил отметку времени последнего изменения. Затем, по новому запросу, проверьте его по текущей отметке времени. Если разница во временных отметках составляет менее 5 минут, вы можете вместо этого делать то, что хотите, с другими таймерами.
Обратите внимание, что вам не нужно больше, чем эта временная метка, насколько я понимаю. Видя, что у вас установлен интервал, вы можете легко определить, когда должен был запускаться «второй» таймер, а затем просто вычесть этот интервал из различий, чтобы получить «второй таймер».

Не зная, что должен делать третий «таймер», боюсь, я не могу дать вам никаких подсказок. Я подозреваю, что его тоже можно удалить, но, надеюсь, будет легко понять, как лучше всего решить эту проблему с помощью того, что я уже дал. 🙂

0

Другие решения

Других решений пока нет …