У меня есть местное научное приложение, которое использует потоки для обработки независимых частей больших вычислений. Моя группа хотела бы, чтобы это стало веб-приложением, так что теперь я выясняю, как его портировать (поэтому, пожалуйста, прости любые полные утверждения о тупице). Я использую Google App Engine, чтобы позаботиться о «веб» части, но я все еще выясняю, какие другие переводы уместны.
Мое первое желание состояло в том, чтобы полностью оставить вычисления как есть (например, перевести некоторые данные веб-формы в соответствующий формат, передать их в калькулятор, который порождает потоки и т. Д.).
Однако я также читаю о Queue
s + TaskOptions
- это похоже на то, что я должен использовать вместо ExecutorService
+ Callable
. Отдельные подсчеты могут занять немного времени (хотя они также могут сильно различаться по количеству времени), поэтому я думаю, что в идеале я бы хотел, чтобы пользователь запросил весь расчёт, а затем перешел на страницу, которая загружает результаты по мере их поступления.
Правильно ли использовать Queue
s + TaskOptions
? Если нет, то что? Если да, то есть ли удобные параллельные примеры того, что я собираюсь сделать?
Наконец, у моей группы есть некоторые краткосрочные сомнения относительно широкого выпуска внутренних частей вычисления, так что все детали относятся к серверной части - должно ли это развеять эти проблемы?
Со временем (после некоторых публикаций и т. Д.) Мы планируем сделать эти внутренние ресурсы открытыми, и, по-видимому, тогда веб-версия может переместить вычисления на стороне клиента. Есть ли предпочтительный способ сделать реализацию сейчас, которая сделает этот будущий перевод более простым? Или об этом даже не стоит беспокоиться (поскольку у меня уже есть «клиентская» версия в моем локальном приложении)?