Какой самый лучший способ создания и управления дочерними процессами, которые не завершаются после завершения задачи - PullRequest
0 голосов
/ 18 мая 2019

Я использую Falcon API, который запускает 3 функции параллельно, используя multiprocessing.Pool и использует apply_async. Как не создавать новые процессы при каждом вызове API и использовать старые для выполнения задачи?

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

Кроме того, если я не установлю maxtasksperchild, это приведет к постоянно растущему объему памяти.

Я ищу что-то в этом роде.

Сервер запускается:

1. Load all constants
2. create 3 child processes 

Первый запрос API:

1. Start 3 child processes and return output
2. Instead of killing the child processes, make them wait for another call.
3. Do it all over again on Second API request
...