2012-11-08 59 views
3

我目前正在使用PHP和Facebook API在Heroku上主持一个研究项目。它有点密集,所以它已经超过了Heroku 30秒的时间限制来回应。使用他们的支持,他们建议使用后台进程来做到这一点(https://devcenter.heroku.com/articles/background-jobs-queueing),但他们没有说我应该如何为PHP做这件事。有没有人有什么建议?Heroku PHP托管超时

回答

0

尝试Symfony 2 process component。它有一个漂亮和简单的面向过程的OO界面。

use Symfony\Component\Process\PhpProcess; 

$command = file_get_contents('/hello_world.php'); 

if ($command) { 
    $process = new PhpProcess($command); 
    $process->run(); 

    if ($process->isSuccessful()) { 

     $output = $process->getOutput(); 
     // ... 
    } 
    else { 
     throw new Exception($process->getErrorOutput()); 
    } 
} 
+0

因此,我只是将我现在使用的代码包含在一个文件中,在您的示例hello_world.php中,然后就像你说的那样调用它,它不应该给我一个时间?我需要在Heroku上安装Symfony 2还是已经可用? –

+0

您需要[安装process compontent](http://symfony.com/doc/2.0/components/process.html)到您的项目中。你不需要整个symfony2框架。你可以克隆[git repo](https://github.com/symfony/Process)或使用[composer](https://packagist.org/)。 – max

+0

请把你下载的文件放在哪里?我一直在获取Class Symfony \ Component \ Process \ PhpProcess not found错误。 – Goaler444