Представил
В предыдущих случаях записи событий/прослушивателей данные хранились напрямую, и этот шаг фактически можно было поместить в очередь для выполнения. В очереди laravel есть несколько драйверов на выбор, и здесь используется redis.
Создать очередь
- Используйте
phpartisan make:очередь журнала просмотра заданийВы можете создать файл очереди и в конечном итоге сгенерировать егоJobs/BrowseLogQueue.phpфайл - Функция-это просто хранилище данных, а код очень прост. Обратите внимание, что такие конфигурации, как максимальное количество сбоев, могут быть указаны в классе следующим образом
ip_addr = $ip_addr;
$this->request_url = $request_url;
$this->city_name = $city_name;
$this->created_at = $now;
$this->updated_at = $now;
}
/**
* Execute the job.
*
* @return void
*/
public function handle(BrowseLog $browseLog)
{
$log = new $browseLog;
$log->ip_addr = $this->ip_addr;
$log->request_url = $this->request_url;
$log->city_name = $this->city_name;
$log->created_at = $this->created_at;
$log->updated_at = $this->updated_at;
$log->save();
}
/**
* Mission failure
* @param Exception $exception
*/
public function failed(Exception $exception)
{
// Send an email to inform the administrator
event(new NotifyAdmin($exception->getMessage()));
}
}Задача распространения
Монитор CreateBrowseLog.php В документ были внесены следующие поправки
/**
* Handle the event.
*
* @param UserBrowse $event
* @return void
*/
public function handle(UserBrowse $event)
{
// Local access is not recorded
$arr = ['127.0.0.1'];
if (!in_array($event->ip_addr, $arr)) {
/*$log = new \App\Models\BrowseLog();
$log->ip_addr = $event->ip_addr;
$log->request_url = $event->request_url;
$log->city_name = $event->city_name;
$log->save();*/
BrowseLogQueue::dispatch($event->ip_addr, $event->request_url, $event->city_name, now());
/* BrowseLogQueue:: dispatch ($event - > ip_addr, $event - > request_url, $event - > city_name) - > delay (now () - > addMinute (1)); delayed addition
*/
}
}Очередь запуска
Последний шаг-запустить очередь и выполнить ее. очередь мастеров php:работа
Проблем с бегом нет, но это еще не конец. Вам нужно использовать хранителя процесса супервизора и продолжить работу со следующей статьей.
Ссылка: Очереди.