Я разрабатываю систему, которая импортирует списки рассылки из файла CSV. Для достижения этой цели я использую Красноречивый ОРМ импортировать все сообщения электронной почты из 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. Использование php script_that_imports.php
не будет работать, потому что есть много зависимостей, которые работают только внутри рамки Laravel.
Любая идеология о том, как я могу запускать код фона, но все еще использовать средства инфраструктуры?
Очень хорошо! Laravel rocks –
Я еще не пробовал, но я уверен, что это решение. Так что я принимаю это в любом случае –