Лучший способ заблокировать / показать уведомление «Working ...» при внешнем вызове длительной Java-команды - PullRequest
0 голосов
/ 17 июня 2011

У меня есть класс Java, который можно вызывать из оболочки. (через "java [command] [options]") Класс принимает набор параметров и выводит MIDI-файл.

Что я хочу сделать, так это настроить простое веб-приложение, которое читает из заранее определенного каталога, который всегда будет содержать 3 MIDI-файла (только!). Посетителю веб-приложения предоставляется эти три файла, и он должен выбрать тот, который он / она считает лучшим (отправьте форму). Веб-приложение будет использовать эту информацию для генерации набора из 3 новых MIDI-файлов с использованием класса Java при записи информации в файл журнала и перемещении старых файлов в каталог архива.

3 вещи, в которых я не уверен:

1) Какой веб-язык подойдет для этого? Я планирую превратить это в полноценное приложение в какой-то момент, но зависимость от Java заставляет меня думать, что использование сервлетов - это путь. Однако будет ли PHP или Rails (например) проще? Можно ли / можно вызывать Java с помощью команды оболочки из PHP или других языков?

2) Генерация MIDI занимает некоторое время, поэтому я хочу, чтобы какая-то полоса загрузки или уведомление "Ожидание ..." появлялись на экране после того, как пользователь отправил форму. По сути, я хочу, чтобы приложение блокировало и показывало это уведомление во время выполнения команды оболочки, а также отображало новую страницу после ее завершения и создания новых MIDI. Есть ли какой-нибудь пример, которому я могу следовать для достижения этого (было бы неплохо использовать AJAX с PHP или сервлетами)?

3) Когда на веб-сайте присутствует более одного человека, и один человек отправляет форму (и запускает генерацию MIDI), тогда я хочу, чтобы все получили уведомление о загрузке или хотя бы инициировали какое-либо действие. Есть ли чистый способ сделать это?

Спасибо за любые ответы!

Ответы [ 2 ]

0 голосов
/ 17 июня 2011

Ваши вопросы немного открыты, вы должны попытаться сосредоточить свои вопросы немного больше в будущем.Я постараюсь дать вам некоторые рекомендации.

1) Я бы не сказал, что есть «лучший» способ сделать это, так как вы можете легко использовать любое количестворешения.Есть ли у вас опыт создания веб-приложений?Если так, используйте то, что вам знакомо.Если нет, то, возможно, выберите фреймворк на удобном для вас языке или изучите создание сервера с нуля на этом языке.

2) и 3) касаются реализации функций, опять же, вы можете сделать это несколькими способами.Ajax - определенно один из способов решения обеих этих проблем.Я думаю, вам следует немного больше изучить технологии, которые вы планируете использовать, чтобы вы лучше знали их возможности.Попробуйте создать решение с использованием Ajax и посмотрите, как это работает.

0 голосов
/ 17 июня 2011

Если возможно, вы должны предоставить веб-пользователю реальную обратную связь.Используя индикатор выполнения , вы можете использовать AJAX для вызова сервлета или любого серверного сценария, который проверяет состояние программы и получает процент выполнения.

Было бы две разные операцииВот.Первое, что вы упомянули, это начало обработки MIDI.Второй операцией будет проверка статуса приложения.Эта секунда еще более важна, если вы (как кажется, вы говорите) можете запускать только один процесс за раз.

Одной из идей, которую вы можете рассмотреть, является отправка пользователю по электронной почте ссылки на окончательные файлы после того, как вызавершена обработка.Если это займет много времени для каждого пользователя, и у вас много пользователей, это может привести к тому, что веб-страница когда-либо ответит пользователю.Это ужасная идея, и большинство пользователей сочтут это неприемлемым.Альтернативный способ доставки, такой как электронная почта, может быть более приемлемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...