Я создаю службу, которая позволяет клиентам запускать отдельные рабочие процессы «в сети». Процессы предназначены для работы в течение очень долгого времени и подачи новых заказов примерно каждую минуту (событие управляется). Процессы предназначены для продолжения работы, даже если новых заказов нет и все заказы были обработаны. -> 1 процесс на одного клиента.Statful Processes as a Service (Java)
Я требую следующую «функциональность»:
- Начать новый процесс
- Завершение процесса (по требованию, никогда автоматически)
- Следите за процессами/пользователь
- Получать новые «порядок» для процесса (идентифицировать процесс по идентификатору клиента)
- Сообщите заказчику, когда его заказы не могут быть обработаны, в случае, если его/ее процесс закончился (например, произошло исключение, кто-то убил сервер ...)
Я ищу модели или лучшие практики, которые позволяют мне решить следующие задачи: - Управление процессов в рамках одного сервера (например, используя статический список или singleton-pattern, что-то вроде этого, чтобы отслеживать отображение между идентификатором пользователя и процессом) - Управление процессами на многих серверах (масштабируемость): Один сервер может запускать 100-200 процессов, если я получу больше клиентов, как бы я помню, на каком сервере выполняются процессы?
Я уверен, что есть и другие, которые сталкивались с этими проблемами раньше и, конечно, есть «правильные» и «неправильные» способы сделать это. Любые подсказки приветствуются!