触发并忘记Web服务/ SOAP操作

时间:2014-09-17 17:15:48

标签: php soap nusoap

我在我的nusoap服务中注册了以下操作:

$server->register(
        'testfunction',
        array('value' => 'xsd:string'),
        array( ),
        'urn:test_services',
        'urn:test_services#testfunction'
);

......和功能本身:

function testfunction($value)
{
    // do something with $value
}

我希望这个动作能够解雇并忘记",即无论什么电话都不必为响应而闲逛。我刚刚为$ server-> register的响应参数传递了一个空数组。我认为这可能会实现我所寻求的目标,但事实并非如此(客户对此做出了回应)。

WSDL看起来像这样:

<message name="testfunctionRequest">
    <part name="value" type="xsd:string"/>
</message>
<message name="testfunctionResponse"/>

有没有办法通过nusoap实现这样的功能?我不确定&#34;是否会忘记&#34;是正确使用的术语,所以我在寻找可能的答案时遇到了一些麻烦!

1 个答案:

答案 0 :(得分:1)

您需要从Web服务器进程分离当前执行并关闭连接:使用pcntl_fork()或在后台运行PHP脚本 - Asynchronous shell exec in PHP

另一种选择是将有关请求的信息添加到某个队列。此队列可能是MySQL(或其他DBMS)表或某种类型的存储,如MemcacheQRabbitMQ等。然后,由另一个独立脚本从队列中检索信息并对其进行处理。