如何并行执行PHP shell_exec a java class?
How to perform PHP shell_exec a java class in parallel?
我正在从 php 执行 java 类。
出于测试目的,我有一个 php 页面。当我导航到该页面时,它会执行一个 java 程序,等待 5 秒并输出一些内容。
当我从不同的浏览器windows同时导航到页面时,第一个window需要5秒来输出消息,第二个需要10秒,第三个15秒等等。
我想要的是java进程并行运行,这样所有windows大致同时输出结果,但我不知道如何做这个。我觉得有一个简单的解决方案,但我在互联网上找不到任何地方。
我也尝试在后台使用 nohup
和 &
到 运行 执行它,但同样的事情发生了。
您似乎遇到了一些阻止并行执行的锁定问题。您在使用 PHP 会话模块吗?默认会话存储模块将会话数据存储在一个文件中,该文件在页面执行期间被锁定。如果您在同一个浏览器中加载页面两次,则第二个请求会被会话模块阻止,直到第一个请求完成。
在另一个浏览器中执行第二个请求以检查这是否是您的问题。如果是这样,如果您不需要在会话中存储更多数据,您可以调用 session_write_close()
释放锁。
我正在从 php 执行 java 类。
出于测试目的,我有一个 php 页面。当我导航到该页面时,它会执行一个 java 程序,等待 5 秒并输出一些内容。
当我从不同的浏览器windows同时导航到页面时,第一个window需要5秒来输出消息,第二个需要10秒,第三个15秒等等。
我想要的是java进程并行运行,这样所有windows大致同时输出结果,但我不知道如何做这个。我觉得有一个简单的解决方案,但我在互联网上找不到任何地方。
我也尝试在后台使用 nohup
和 &
到 运行 执行它,但同样的事情发生了。
您似乎遇到了一些阻止并行执行的锁定问题。您在使用 PHP 会话模块吗?默认会话存储模块将会话数据存储在一个文件中,该文件在页面执行期间被锁定。如果您在同一个浏览器中加载页面两次,则第二个请求会被会话模块阻止,直到第一个请求完成。
在另一个浏览器中执行第二个请求以检查这是否是您的问题。如果是这样,如果您不需要在会话中存储更多数据,您可以调用 session_write_close()
释放锁。