0

私は Laravel キューで立ち往生しています..ドキュメントに従ってすべてのことを行っていますが、キューに入れられたジョブは毎回失敗したジョブテーブルに入ります。

csv ファイルをデータベースにインポートするジョブをキューに入れようとしています。

.env ファイルで、QUEUE_DRIVER=database を実行しました。(PS ローカルホストでキューにデータベースを使用しています。Mac では PHP バージョン 5.5.3 を使用しています)。データベースにジョブが作成されていますが、失敗しています。

私のコントローラーのコード-

if($request->hasFile('import_file')){
            $country = MemberProfile::where('username',$username)->first(['country']);
            $csvname = $username.".".$request->file('import_file')->getClientOriginalExtension();
            $csvpath = base_path() . '/public/assets/memberCollection/';
            $request->file('import_file')->move($csvpath, $csvname);
            $data = new importDataJob;
            $data->path = $csvpath."".$csvname;
            $data->listindex = $listindex;
            $data->country = $country->country;
            $data->username = $username;
            $data->save();
            $this->dispatch(new ImportLeads($data));


        }

ImportLead.php ジョブ ファイルのコードは次のとおりです。

protected $impStuff;
/**
 * Create a new job instance.
 *
 * @return void
 */
public function __construct(importDataJob $values)
{

    $this->impStuff = $values;
}

/**
 * Execute the job.
 *
 * @return void
 */
public function handle()
{
    try{
        $data = Excel::load($this->impStuff->path, function($reader) {
        })->get();
        Storage::disk('local')->append('logtest.txt', $this->impStuff->path);
        //Inserting record by record into database
        if(!empty($data) && $data->count()){
            foreach ($data as $key => $value) {
                $member = new MemberController();
                //dd($this->impStuff["country"]);
                $number = $member->E164FormatNumber($value->mobile,$this->impStuff->country);
                $leadlistassoc_insert[] = ['listindex' => $this->impStuff->listindex, 'leadindex' => DB::table('leads')->insertGetId(['firstName' => $value->firstname, 'lastName' => $value->lastName, 'mobile' => $number, 'username' => $this->impStuff->username, 'created_at' => Carbon::now(), 'category' => 1])];

            }
            if(!empty($leadlistassoc_insert)){
                DB::table('leadlistassoc')->insert($leadlistassoc_insert);
            }
        }
    }
    catch(Exception $e){
        Storage::disk('local')->append('logtest.txt', $e);
    }
}

public function failed()
{
    Storage::disk('local')->append('logtest.txt', "failed");
}

別のクラスに配置し、そのハンドル関数を手動で呼び出すと、同じコードが機能します。

Laravel 5.2 コマンドを使用してデータベースをリッスンする:

php artisan queue:listen --tries=3
4

0 に答える 0