Laravel脚本在一段时间后停止运行

时间:2013-10-25 13:20:25

标签: command-line laravel

我有这个PHP脚本运行了很长一段时间但是一段时间后(由于浏览器限制,当它停止加载页面时)它停止执行代码。

它的基本功能是使用API​​获取10000篇文章并将它们逐个存储在我自己的数据库中。循环播放大约1200篇以上的文章后,谷歌浏览器旋转/加载图标停止,我回来的所有内容都是空白页面。当我检查数据库时,我可以在数据库中看到结果,但是脚本没有按原样循环遍历所有文章,而是停止了。

我知道从CLI运行会在停止加载时删除默认的浏览器时间限制,但我不知道如何从命令行调用Laravel中的某个控制器方法

3 个答案:

答案 0 :(得分:2)

做一个工匠命令。请参阅http://laravel.com/docs/commands

上的文档

答案 1 :(得分:1)

由于您实际上正在为数据库播种,因此快速且脏的方式是使用db:seed为您执行此操作:

class MyTableSeeder extends Seeder {

    public function run()
    {

            // Do whatever you need to

    }

}

在DatabaseSeeder上启用它:

class DatabaseSeeder extends Seeder {

    public function run()
    {
        $this->call('MyTableSeeder');
    }

}

执行它:

php artisan db:seed

更好的方法是创建一个Artisan Command。这是我写的另一个教导如何创建它的答案:Select all rows with a date of right now

答案 2 :(得分:0)

  1. 从Web服务器删除超时限制(主要来自配置文件)
  2. 使用set_time_limit(0)强制PHP无限期地执行您的代码。