2016-07-03 2 views
0

Я выполняю классы Java из php.Как выполнить PHP shell_exec Java-класс параллельно?

Для целей тестирования у меня есть страница php. Когда я перехожу к этой странице, она запускает Java-программу, которая ждет 5 секунд и выводит что-то.

Похоже, что когда я перехожу к странице одновременно из разных окон браузера, первое окно занимает 5 секунд, чтобы вывести сообщение, второе - 10 секунд, через 15 секунд и т. Д.

Я хочу, чтобы процессы java выполнялись параллельно, так что все окна выводят результат примерно в одно и то же время, но я понятия не имею, как это сделать. Я чувствую, что есть простое решение, но я просто не могу найти его нигде в Интернете.

Я также попытался использовать его с nohup и & для запуска в фоновом режиме, но то же самое происходит.

ответ

0

Кажется, что у вас есть проблема с блокировкой, которая предотвращает параллельное выполнение. Используете ли вы модуль сеанса PHP? Модуль хранения сеанса по умолчанию хранит данные сеанса в файле, который заблокирован во время выполнения страницы. Если вы дважды загрузите страницу в один и тот же браузер, второй запрос блокируется модулем сеанса до тех пор, пока не завершится первый запрос.

Выполните второй запрос в другом браузере, чтобы проверить, не является ли это вашей проблемой. Если это так, вы можете позвонить session_write_close(), чтобы освободить блокировку, если вам не требуется хранить больше данных в сеансе.

+0

Большое спасибо. Это действительно проблема. Он работает из разных браузеров. Можете ли вы порекомендовать некоторые ресурсы, где я могу узнать больше об этой теме или просто общие ресурсы, которые вы сочли полезными при расширении знаний в области веб-разработки/PHP. – stinseid