将数据推送到Laravel中排队

loading...


0

Laravel App检查redis数据库以查找第三方推送的数据 .

Laravel Scheduler每10分钟运行一次工匠命令 php artisan check:redis .

我期待在高峰时段每小时检查大约2万条记录 . 如果整个方法整体上存在缺陷,也请建议我 .

  • Scheduler每10分钟运行 check:redis 命令

  • check:redis 命令应该调度要排队的作业

  • 队列稍后将处理作业并根据需要创建行 .

以下是来自 App\Console\Commands\CheckRedishandle() 方法

public function handle()
{
  while(Redis::llen('schema_queue')){
    dispatch(new CheckRedisJob($redis->rpop('schema_queue')))
  }
}

这是 App\Jobs\CheckRedisJob

public function handle()
{
    Stage::create([
        'model' => $this->entity->model,
        'payload' => json_encode($this->entity->payload)
    ]);
}

现在当我运行命令而不是排队时,它在 Stage::create() 中's directly creating what'

旁注:每个调度的作业都有一个模型名称和有效负载,并将根据需要通过验证和/或检查动态插入到指定的表中,这显然需要时间 . (下面是样本模型/有效负载)这就是处理作业的整个想法队列是 .

{
  model : "Profession",
  payload: {
              id: '......',
              name: '........',
              contract_type: '........',
              employment_type: '........',
              department: '........'
              .... and like 20 other fields...

           }
}

loading...

0回答

No Data

评论

暂时没有评论!