
27.02.2017, 02:30
|
Интересующийся
|
|
Регистрация: 05.04.2015
Сообщений: 11
|
|
Контроль итераций php скрипта
Здравствуйте, подскажите в какую сторону копать.
Есть скрипт php который отрабатывает около 6000 итераций (почтовая рассылка)
Хочу сделать контроль визуальным.
Что мне правильнее сделать и в какую сторону копать?
Обрабатывать цикл в java и по одному получать ответы от php?
Или как то отлавливать каждую итерацию в скрипте php через ajax (т.е. цикл работает на стороне сервера)
В java новичёк, пользуюсь простейшими запросами по ajax - пока хватало)))
Просьба тыкать носом в конкретные ссылки, или разжевать подробно тут )))
|
|

27.02.2017, 05:11
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от neformatnoe
|
Есть скрипт php который отрабатывает около 6000 итераций (почтовая рассылка)
|
А зачем отрабатывать каждую итерацию? Отправка почтовых сообщений это не мгновенный процесс, не утомительны ли будут ожидания?
|
|

27.02.2017, 08:17
|
Интересующийся
|
|
Регистрация: 05.04.2015
Сообщений: 11
|
|
Нужно контроллировать процесс ))) и почтовая рассылка - это просто пример, есть ещё несколько вариантов применения
|
|

27.02.2017, 12:40
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от neformatnoe
|
Нужно контроллировать процесс
|
Интересно и какова же длительность одной итерации этого процесса?
|
|

27.02.2017, 13:47
|
Интересующийся
|
|
Регистрация: 05.04.2015
Сообщений: 11
|
|
Прошу отвечать по теме.
Если помочь не можете, то зачем флуд разводить?
На вопрос отвечу, отправка одного сообщения стоит с промежутком в две секунды, дабы не нагружать работу сервера.
|
|

27.02.2017, 14:34
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от neformatnoe
|
Прошу отвечать по теме.
|
А по теме так это слов нет чтобы такое обозвать.
Думаю и без пояснений понятно, что если иметь реальный контроль чего творилось на сервере, то это синхронный Ajax, что не очень хорошо. Если не важно в какое время был отклик сервера, а важно что было на нем, то в каждой итерации делайте вывод, а по окончании "процесса", если только клиент дождется его, а не оборвет соединение, разбирайте строку-портянку ответа на клиент и анализируйте.
Или вы думаете, что есть чудесное? И вам задают вопрос о времени не ради флуда, а чтобы заставить подумать самому, что такое "реальный режим времени" в контексте клиент-сервер.
Последний раз редактировалось laimas, 27.02.2017 в 14:37.
|
|

27.02.2017, 18:01
|
Интересующийся
|
|
Регистрация: 05.04.2015
Сообщений: 11
|
|
Сообщение от Rise
|
6000 итераций * 2 секунды = 12000 секунд = 200 минут = 3 часа 20 минут
neformatnoe, что реально больше 3 часов скрипт выполняется или как ты отправку с промежутком сделал?
|
Время работы скрипта на сервере не ограничено. Сервер свой.
Клиент дожидаться и не будет - я же написал, мне для себя, не закрывая страницы я в любое время могу увидеть состояние процесса.
Опять же писал выше - почтовая рассылка это для примера, мне просто нужно понять принцип действия, чтобы дальше делать своё задуманное по аналогии
По поводу "подумать самому" - я же честно написал, что новичёк в java и сюда пришёл за советом, а не для того чтобы носом тыкали
|
|

27.02.2017, 18:15
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
neformatnoe,
ну то, что процессы на сервер и клиенте асинхронные это же понятно. Если рассматривать вопрос буквально, то как вы себе представляете выполнение цикла на сервере, результат операций каждой итерации которого должен каким-то образом отлавливать клиент? Такое возможно только в том случае, если итерации задаются клиентом - запрос клиента, это выполнение на сервере и ответ клиенту. Следующий запрос, повторение, и так пока не будет выполнено все.
Если же клиент запросил, сервер запустил цикл, то вывод клиенту в каждом цикле не означает, что клиент его получил, анализирует, а сервер ждет. Анализ клиенту будет доступен только по окончании работы на сервере.
|
|

27.02.2017, 18:18
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,148
|
|
neformatnoe,
посмотрите это websockets
|
|

28.02.2017, 02:14
|
Профессор
|
|
Регистрация: 04.03.2015
Сообщений: 163
|
|
Я как-то тоже мучался с подобным, очень долго, писал flush() и еще много чего, но ничего не помогает, ответ не приходит, а в твоей ситуации почему бы не сделать ajax в цикле, только зачем каждую итерацию, например каждые 200
ну или действительно, скрипт рассылает и сохраняет сколько разослано, а клиент спрашивает к примеру каждую минуту, но это уже будет два разных скрипта тогда и запускать будут по отдельности
Последний раз редактировалось psiklop, 28.02.2017 в 02:24.
|
|
|
|