0

CSV ファイルからメーリング リストをインポートするシステムを開発しています。それを達成するために、モデルの次のコードで Eloquent ORM を使用して、すべての電子メールを CSV からデータベースにインポートしていますTarget

public function importCSV($file)
{
    $destination = 'uploads/';
    $file->move($destination, $file->getClientOriginalName());
    $csv = new parseCSV();
    $csv->auto($destination . $file->getClientOriginalName());

    // There must be a Email field in CSV file
    if(!in_array('Email', $csv->titles))
        throw new Exception("Email field not found", 1);

    foreach($csv->data as $data)
    {
        $this->cont++;
        $mailing = new Mailing();
        $mailing->target()->associate($this);
        $mailing->email = $data['Email'];
        $mailing->save();
    }


}

通常、CSV ファイル全体をインポートするには時間がかかるため、このプロセスをバックグラウンドで実行したいと考えています。shell_exec()the operator & in the endなどのようなツールがいくつかあることを私は知っていますcrontab...

しかし、コマンドラインScopeでEloquent ORMをどのように使用できるかさえわかりません。Laravelフレームワーク内でのみ機能する多くの依存関係があるため、使用php script_that_imports.phpは機能しません

バックグラウンド コードを実行しながら、フレームワーク機能を使用する方法について何かアイデアはありますか?

4

1 に答える 1