我有一个聊天机器人,它将一些数据保存到用户正在发送的数据库中。我想在向用户发送响应后将其保存到db(慢速网络呼叫)。
我可以在Python Tornado中做到这一点,但我还没能做到PHP Apache。
用户根据请求发送输入 - >我们处理它 - >我们将输出作为响应发送给用户 - > 然后我们希望存储数据
class A
{
function __construct()
{
echo "Hello World";
}
function __destruct()
{
sleep(15); //I want this to happen after response is being send
}
function calc()
{
echo "Progress World";
}
}
答案 0 :(得分:0)
__destruct
。如果脚本没有正常终止但被终止,则可能根本不会调用析构函数。
如果您只是想在特定点执行清理任务并确保它们被处理,请使用PHP 5.5引入的finally
clause
来自PHP站点的__destruct
示例:
<?php
class my_class {
public $error_reporting = false;
function __construct($error_reporting = false) {
$this->error_reporting = $error_reporting;
}
function __destruct() {
if($this->error_reporting === true) $this->show_report();
unset($this->error_reporting);
}
?>
请参阅PHP Documentation on destructors。我希望这会有所帮助。