加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

php – Laravel 5.2行列和事变 – 不敦促事变DB

发布时间:2021-03-06 05:32:15 所属栏目:编程 来源:网络整理
导读:编辑2: 以下是我们要经验的步调: 打算运行(为每个公司建设CollectHistoricalData功课) 应将CollectHistoricalData推送到行列(功课表) CollectHistoricalData有一个函数ApiDaemon :: GetCompanyWithQuery($company,$query),它是从一个单独的类运行的,该类也

编辑2:

以下是我们要经验的步调:

>打算运行(为每个公司建设CollectHistoricalData功课)
>应将CollectHistoricalData推送到行列(功课表)
> CollectHistoricalData有一个函数ApiDaemon :: GetCompanyWithQuery($company,$query),它是从一个单独的类运行的,该类也被引用到其他几个处所.
> GetCompanyWithQuery网络数据并将其插入数据库.

它一向运行精采,但挂起的不是将功课插入功课表,而是一个接一个地同步运行它.

编辑1:

.env文件配置为行使数据库QUEUE_DRIVER,我乃至实行在config / queue.php文件中对其举办硬编码.

我们正在行使Laravel 5.2举办项目.在这个项目中,我们必要每小时cURL一个url并将数据生涯到数据库.我们早先行使Cron Jobs并在约莫一分钟内根基上开除了数千个cURL,这会由于负载而导致PHP瓦解.

我们抉择搬到Laravel的事变和行列,没有乐成.我们正在为我们的事变行使数据库驱动措施,并实行了很多差异的要领来将功课放入数据库,因此我们拥有的保卫措施事变者可以处理赏罚它们.

这是我们此刻的代码,我们正在行使Kernel.php $打算来启动这项事变,因此我们没稀有百个哀求实行一小时产生,这导致数以万计的cURL.

Kernel.php时刻表:

    $schedule
        ->call(function () {
            $items = DB::select('{selecting certain things to run}');
            foreach ($items as $q) {
                $this->dispatch(new CollectHistoricalData(Company::find($q->company_id),ApiQuery::find($q->query_id)));
            }
        })
        ->hourly()
        ->name('Historical Pulls')
        ->withoutOverlapping()
        ->before(function() {
            $this->startTime = Carbon::now();
        })
        ->after(function () {
            mail({mail us a report afterward});
        });

当它运行时,它将一个接一个地运行它们,而不是将它们推送到建设的Jobs表.

CollectHistoricalData.php:

该功课正在引用个中具有该函数的另一个类(由于该代码自己就是一个圆滑的野兽),并且个中约莫有20个,以是最简朴的要领是引用该类而不是将全部20个类从头建设为Jobs.

TL; DR

我们有一个打算,它应该将引用另一个类中的函数的功课推送到功课表,而是迟钝地逐个运行它们.是什么造成的?

最佳谜底 嗯……我很蠢….

php artisan设置:破除

我没有破除设置的缓存….哇…

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读