同步。股票数据与实时股票数据

时间:2011-07-16 15:54:00

标签: php cakephp stockquotes yahoo-api

我希望将我的应用数据(库存)与实时数据同步。我正在使用Yahoo API ..这是我的代码..

       // $companyInfo ; holds company information like symbol 

        foreach($companyInfo as $singleCompany)
        {
            $feedUrl = 'http://finance.yahoo.com/d/quotes.csv?s='.$singleCompany['Company']['Symbol'].'&f=l1c6gho&e=.csv';

            $handle = fopen($feedUrl, "r");

            $liveCompanyData = fgetcsv($handle);  
            if(!empty($liveCompanyData) && isset($liveCompanyData))
            { 
                      /***  here I parse data n save it in db ***/
            }
           fclose($handle);

        }

以上代码适用于少量数据(即大约30条记录),对于长记录集,它会提示我Maximum execution time of 60 seconds exceeded in ..... 我怎么能这样做?

注意:我正在使用cakephp框架。

1 个答案:

答案 0 :(得分:0)

您可以使用set_time_limit function

if(!ini_get('safe_mode') ) { 
    set_time_limit(120); 
} 

但是,如果PHP处于安全模式,它将无法工作(请参阅if)。在这种情况下,您必须关闭安全模式或限制脚本执行时间 - 例如,一次只处理一个公司,并为每个公司单独执行脚本。

既然你说你正在使用CakePHP,我认为你的代码是在用户请求的脚本中运行的 - 这不是最好的设计,因为它实际上是一个服务脚本。最好将它作为一个cron作业运行(php -f your_script.php) - 在这种情况下,使用不同的php配置文件(通常是/etc/php5/cli/php.ini),如果你有访问/权限编辑它 - 更改其中的max_execution_time parameter(它只会影响php-cli脚本)。