У меня есть класс уведомлений о состоянии, поэтому при создании статуса он посылает мне слабое сообщение. Проблема, с которой я сталкиваюсь, заключается в том, что новый статус создается каждые несколько минут, а получение слабого сообщения каждые пару минут является повторяющимся.и неконструктивный.Тем более, что существуют десятки серверов, публикующих эти статусы.
Можно ли было бы публиковать сообщения о слабом режиме только в случае изменения статуса определенного сервера?Например, сервер был включен, а затем выключен.
Я попытался получить все статусы сервера, но не могу понять, как получить только последние два с определенным идентификатором сервера.
--------------------------------------------------------- редактирует ------------------------------------------------------------ Ранее пробованная попытка: кроме последней, я бы не хотел там
$statuses = ServerStatus::all();
$first = ServerStatus::where('server_id', $notifiable->server_id)->first();
//dump($first);
foreach($statuses as $status){
if($status->server_id === $notifiable->server_id){
//dump($status);
if($status->status_id !== $first->status_id){
return (new SlackMessage)
->content('One of your statuses has been updated!');
}
else{
return (new SlackMessage)
->content('One of your statuses has been not updated!');
}
}
}
и мой ботинокдля отправки уведомления каждый раз при создании ServerStatus:
защищенная статическая функция boot () {
parent::boot();
ServerStatus::created(function($model) {
$original = ServerStatus::where('server_id', $model->server_id)->skip(1)->first();
dump('original',$original->status_id);
dump('serverStatus', $model->status_id);
if ($original && $model->status_id != $original->status_id) {
$model->notify(new ServerStatusNotification());
}
});
}