Пользователь может выполнить действие в нашем веб-приложении, которое занимает от 100 мс до 10 секунд, я хочу немедленно вернуть результат браузеру и затем показать результаты пользователю после завершения обработки задачи. Действие - синхронизация данных от третьей стороны и реализуется как библиотека классов (DLL).
Обычно он предлагал использовать очередь, такую как RabbitMQ или MSMQ, и иметь рабочего, который записывает результаты в базу данных, которая опрошена по запросу AJAX из браузера, чтобы проверить наличие обновлений.
Однако цель состоит в том, чтобы уменьшить задержку, чтобы она была как можно ближе к выполнению задачи синхронно, в то же время позволяя обрабатывать всплески при обработке долговременной задачи, не затрагивая остальную часть веб-сайта.
Как создать резервную копию бэкэнда?. На мой взгляд, процесс будет состоять в следующем: запуск задачи, запуск задачи с минимальной задержкой, уведомление конечного пользователя о завершении задачи (ASAP) и, наконец, отображение результатов в браузере.
<сильные > Примеры
Создание sitemaps с http://www.xml-sitemaps.com/ использует закодированное кодирование передачи для отправки тега <script>
каждую секунду, чтобы вызвать функцию Javascript для обновления страницы с последним статусом.
Проверка сертификатов SSL с https://www.ssllabs.com/ssltest/, похоже, обновляет всю страницу с обновленным статусом.