на апи, но в зависимости от количества создаваемых аккаунтов, бэкенд может обрабатывать операцию долго, следовательно ждать ответ пост запроса не вариант, хотя бы из-за таймлимита нгинса в 60 сек (увеличивать тоже не варик).
Каким образом во вью можно реализовать визуальный прогресс выполнения задачи на бэкенде? Вероятно вебсокеты нужны и тп, может готовые либы для этой задачи есть.
Спасибо
кажется это проще делается, причем тут вообще вебсокеты
axios это промисы же ведь, там и реализуй
https://habr.com/ru/post/354752/
похоже то что нужно, осталось только адаптировать под Vue и php 😁
Или перейти на питон😜
И отложить запуск проекта на годик другой) А вообще в целом не очень простая задача оказалась, хм
Вообще там особо не сложно. * После запроса создаём асинхронную задачу и UUID записываем в таблицу, отправляя UUID клиенту * Потом клиент просто проверяет задачу с указанным UUID по таймеру * Если запрос завершился, то меняем статус задачи
Если задача может быть очень долгой, её надо в том или ином виде кидать в очередь, а в БД хранить текущий статус выполнения. На фронте просто показывать в соответствии со статусом. Если не слишком долго (несколько секунд, меньше timeout), то можно просто показывать обычный индикатор загрузки. Но тоже надо уметь запросом определять статус задачи. Если нужно, чтобы сразу показывать результат без повторных запросов, тогда ws или SSE подрубать.
Вот. Это объяснение хорошее и судя по всему даже без редиса можно обойтись. Спасибо, буду пробовать костылить)
В общем реализовал по красоте, все ок работает) Только вопрос возник, как окошко прогресса вынести в App.vue , что бы можно было переключаться между роутами и оно не исчезало бы. Надо как-то функции, переменные и тп из компонента откуда посылается запрос на создание фоновой задачи, передавать в App.vue
Обсуждают сегодня