У меня есть команда, написанная на laravel, которую я хочу выполнить. Это займет не менее 4 часов, поэтому я хотел бы получить электронное письмо от компьютера, когда задача будет завершена. Я использую очереди, поэтому я хотел бы добавить всю операцию, но я не знаю, возможно ли это.
Это текущее задание:
public function handle()
{
$directory = 'pv';
$files = Storage::allFiles($directory);
foreach($files as $file)
{
$fname = basename($file);
\Log::info('Procesando ',[$fname]);
$arr = explode(" ", $fname);
$day = substr($arr[2], 0, 10);
$date = Carbon::parse($day);
// this process goes to a queue in chunks
Excel::queueImport(new POSImport($date), $file);
}
}
Как мне добавить новую работу, которая отправляет электронное письмо после того, как все закончится? Я не уверен, должен ли я сделать новую команду или новую работу. У меня уже проверена работа с электронной почтой, и она работает.
App \ Jobs \ SendMailFinished.php
public function handle()
{
//Sends message
$me = 'me@example.com';
$msg = 'Process finished';
Mail::to($me)->queue(new TasksFinished($msg));
}