2015-11-09 22 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中的所有作業項目(如果在那裏沒有設置狀態以便完成,因此它在運行時不會選擇空作業)批次功能 –