2015-11-09 23 views
0

我通过一个自定义的工匠命令处理批处理作业Laravel更新查询数组字符串转换

我有检查作业队列则功能尝试更新作业列表

$batch_check = DB::table('jobs_has_batch_job_queue') 
     ->where('jobs_job_id',$this->job_id[0]->job_id) 
     ->get(); 

    if(count($batch_check) < 1) 
    { 
     var_dump($this->job_id[0]->job_id);die; 
     $this->info('Job Complete'); 
     DB::table('jobs') 
      ->where('jobs_job_id',$this->job_id[0]->job_id) 
      ->update(['status' => 'complete']); 
    } 

$batch_check返回一个空数组

和我看到

 $this->info('Job Complete'); 

在终端回送和

$this->job_id[0]->job_id 

就返回一个整数,i与运行得到这个值在所述批处理过程

 $this->job_id = DB::table('jobs') 
      ->where('status','incomplete') 
      ->limit(1) 
      ->get(); 

所有文档说一个数组传递到开始时的以下 - >更新

如果任何人都可以发现我要出错的地方,那就太好了。

回答

0

詹姆斯·柯比

首先检查

$这个 - >作业ID [0] - > JOB_ID

给你的任何值或没有,如果它给你一个值,然后检查作业ID是存在的是否在数据库中

$exist = DB::table('jobs') 
    ->where('jobs_job_id',$this->job_id[0]->job_id)->first(); 


dd(exist); 
+0

我知道$ this-> job_id [0] - > job_id有一个值,因为我在开始批处理时立即得到job_id。 (更新后的代码与上面的qs相同) 然后,我从多个表中选择job_has_batch_job_queue中的所有作业项目(如果在那里没有设置状态以便完成,因此它在运行时不会选择空作业)批次功能 –