Я думаю о разработке веб-интерфейса для пакета анализа данных. Вот что я имею в виду:
Задания анализа данных передаются в очередь.
Люди могут войти в веб-интерфейс и выбрать запуск задания на локальном компьютере или добавить новое задание в очередь.
подробности:
Пользователь входит в веб-приложение и может либо выбрать выполнение текущей работы в рабочей очереди на локальном компьютере, либо назначить новую работу рабочей очереди
Если задание выбрано для запуска на локальном компьютере, веб-страница запрашивает пакет, установленный на локальном компьютере: «Это задание, которое у меня есть для вас. Сколько времени вам потребуется, чтобы завершить это ? "
2.1 Пакет вернет значение (на основе эвристики) на веб-страницу
2.2 Веб-страница может в зависимости от возвращаемого значения выбрать
распределить работу по текущему
машина
2.3 Если задание выделено для текущего компьютера, пакет бэкэнда
продолжает свой путь все время
держать веб-страницу обновленной с
прогресс, который он делает.
Работа может занять от нескольких секунд до
несколько часов до конца.
2.4 В любое время на веб-странице может появиться сообщение «Вы слишком долго -
пришлите мне то, что у вас есть " или, возможно, " У меня есть кое-что более важное для вас -
пошли мне то, что имеешь ".
Пакет может отправлять имеющиеся у него данные, подключаясь к серверной части веб-приложения.
непосредственно в этой точке.
Это необходимо для запуска в Windows и Linux - поэтому я буду использовать архитектуру плагина npapi .
Веб-страница будет выполнять большую часть взаимодействия через Javascript.
Мои вопросы :
Как сделать, чтобы плагин C ++ npapi возвращал значение (структуру json) в javascript веб-страницы, а затем выполнял функцию на веб-странице без выполнения веб-страницы, запрашивающей плагин (для достижения 2.1). То есть плагин инициирует взаимодействие вместо обычного «веб-страница просит плагин что-то сделать»
Есть ли лучший способ реализовать 2.3, чем setInterval?