Я использую тостер Laravel (ссылка здесь). Я просто хочу спросить, возможно ли это, или есть ли какой-нибудь способ включить функцию toastr в задание cron, а затем добавить результат toastr на веб-страницу?
Также я не хочу использовать любой веб-сокет. Я просто спрашиваю, есть ли у кого-нибудь предложение.
Спасибо
Хорошо, если я правильно понимаю, что вы хотите сделать, это асинхронное сообщение для пользователя. Один из способов сделать это — использовать WebSocket и добавить JavaScript, который прослушивает это, и если есть какие-либо входящие данные, покажите toastr. Проблема в том, что вы не хотите WebSockets. Другой вариант — отправить сообщение toastr, как только пользователь загрузит страницу, но это будет не совсем то, что вам нужно, поскольку для этого потребуется перезагрузка страницы для получения данных с сервера, хотя я думаю, что это настолько близко, насколько вы можете получить. Вы можете иметь следующий код в основном файле шаблона:
@if (Session::has('flash_notification.message'))
<script>
$(document).ready(function() {
toastr.{{ Session::get('flash_notification.level') }}
('{{ Session::get('flash_notification.message') }}');
});
</script>
@endif
и вам нужен другой скрипт или команда Laravel, которая регулярно выполняется из CRONJOB и которая должна записывать в БД или файл. После того, как данные записаны, вы можете прочитать их в Contrller или в модели и добавить их в сеанс, вы можете использовать временную метку, чтобы не печатать дубликаты тостеров.
В качестве альтернативы у вас может быть JavaScript на странице, который будет опрашивать конечную точку время от времени, а в случае обновления будет отображаться уведомление, но это добавит дополнительную нагрузку на ваш веб-сервер (Apache).
Других решений пока нет …