返回POST请求,然后执行CURL

时间:2017-11-12 04:31:39

标签: php curl

我正在创建一个接收post请求然后返回数据的API。这个数据需要立即返回,但之后我需要执行一个长时间运行的curl操作。

<?php
if (!empty($_POST)) {
    $numbers = isset($_POST['numbers']) ? $_POST['numbers'] : 0;
    $numbers = $numbers*$secrethash;
    $result = array("error" => false,
        "numbers" => $numbers);
    echo json_encode($result);
    $curlfunction($numbers);
    exit;

不幸的是,在curl函数完成导致我的应用程序超时之前,不会返回数据。可以在后台执行curl,这样我的数据可以立即返回吗?

2 个答案:

答案 0 :(得分:1)

您可以将该函数放在一个单独的文件中并执行它与此类似。这将导致创建单独的进程。也许将结果写入文件并阅读。设置你的php以将变量作为参数。

exec(“/ usr / bin / php /path/to/script.php&gt; / dev / null&amp;”);

值得一试。 : - )

答案 1 :(得分:0)

有几种选择。

  1. 您可以在通过exec()函数输出json内容后安装CRON作业。
  2. 在返回json数据后,从您的页面发出AJAX请求。