我有一个php脚本,它接受一个POST请求作为Web服务的监听器,然后将所有数据处理成两个最终数组, 我正在寻找一种方法来启动第二个脚本,即GET的那些序列化数组并进行更多处理。 include()对我不好,因为我实际上想在传递数据后“释放”或“结束”第一个脚本
你的帮助一如既往地受到赞赏:)
编辑 - 好吧看起来像队列可能是解决方案!在任何例子或参考之前,我从未做过这样的事情吗?
答案 0 :(得分:2)
是否需要立即进行?否则你可以设置一个每X分钟执行一次的cronjob。您必须创建某种队列,其中您的第一个脚本将“请求”粘贴到第二个脚本。然后,cronjob处理队列中的请求。
答案 1 :(得分:1)
你应养成编写php脚本的习惯,这些脚本只是一组函数(本身没有自动运行脚本)。这样你就可以在你所谈论的脚本顶部包含一个脚本文件,然后调用你想要的功能。
例如:
<?php
include('common_functions.php');
$array_1 = whatever_you_do_with_post_values();
$array_2 = other_thing_you_do_with_post_values();
// this function is located in 'common_functions.php'
do_stuff_with_arrays($array_1,$array_2);
?>
事实上:
只是为了与我所说的一致:
<?php
include('common_functions.php');
do_your_stuff();
function do_your_stuff() {
$array_1 = whatever_you_do_with_post_values();
$array_2 = other_thing_you_do_with_post_values();
// this function is located in 'common_functions.php'
do_stuff_with_arrays($array_1,$array_2);
}
?>
显然你应该使用更好的功能&amp;变量名,哈哈。
答案 2 :(得分:0)
我会在一个请求中完成所有操作。它减少了延迟并使整个操作更加高效。
请记住,您可以拥有长时间运行的请求,但仍可以为其他请求提供服务。 Apache将生成另一个php进程来处理来自webservice的其他请求,即使第一个请求尚未完成。只要脚本没有锁定共享资源(数据库文件等),这将正常工作。
也就是说,您应该使用cURL来调用第二个脚本。然后发布未序列化的数组。 cUrl将处理剩下的事情。