2016-09-03 2 views
1

Я разрабатываю приложение JavaFX, которое выполняет следующий процесс последовательно, когда нажимается кнопка.Обработка параллелизма для приложения JavaFX

  1. Обновление таблицы (DB2) через JDBC connecton
  2. Выполнить мэйнфреймов (Z/OS) Работа
  3. Обновить таблицу еще раз, чтобы завершить процесс

Там нет никаких проблем с одним пользователем. Но проблема в том, что есть параллельные пользователи.

Проблема, с которой я столкнулся, состоит в том, что вышеуказанные задачи не должны быть параллельными. Если User1 запускает вышеуказанные задачи из приложения JavaFX, User2 должен дождаться завершения всех процессов User1. В противном случае оба пользователя не получат ожидаемых результатов.

Как обрабатывать очередь для многопользовательского приложения.

+0

Так приложение работает с использованием сервера? С одноранговой? LAN? Как несколько пользователей могут использовать его одновременно? Опишите немного, как он работает для нескольких пользователей ... поэтому мы можем предоставить более качественные ответы. – GOXR3PLUS

+0

Это настольное приложение, установленное локально для каждого пользователя. Приложение работает при подключении к VPN компании. После подключения база данных, получаемая через задания JDBC и Z/OS, выполняется через FTP-соединение. – Dinesh

ответ

0

~~~> Решение 1

Вы можете иметь сервер (ServerSocket), который имеет Queue Она имеет один ожидающий поток запросов и один другого исполнения один после других запросов.

Каждый раз, когда одному пользователю приходится подключаться к базе данных, он отправляет на сервер, например (IP, PORT) одно сообщение.

Сервер сохраняет это сообщение в очереди и т. Д. Синхронно другой поток сервера получает и выполняет одно за другим сообщения из очереди.

Пример:

computer1 посылает (192.345.22, 52)

computer1 посылает (192.567.32, 52)

...

, очевидно, порт каждый раз один и тот же.

Таким образом, только один пользователь будет обслуживаться одновременно, но несколько пользователей могут отправлять сообщение для задания на сервер.

Когда сообщение будет извлечено, будут выполнены 1,2,3, которые вы упомянули в вопросе. Это продолжается до тех пор, пока очередь не будет пуста или не будет ограничена, если все сообщения будут появляться все время.

Очевидно, что приложение сервера должно быть открыто все время, чтобы все мысли могли работать.

Я знаю, что это не самая простая вещь, чтобы реализовать, но вы собираетесь узнать много делать это ..

Смежные вопросы