Когда я получаю задачу типа t1, я хочу выбрать случайный поток из пула и назначить ему эту задачу.
До сих пор я экспериментировал с ThreadPoolExecutor в Python, но похоже, он не предоставляет возможности динамического добавления или удаления задач из уже запущенного процесса.
Примечание. Задачи, с которыми я имею дело, представляют собой прослушиватели событий, которые выполняются непрерывно, пока я не приму решение. чтобы прекратить прослушивание шины событий. Поэтому я подумал, что было бы полезно иметь пул потоков, из которого я мог бы выбирать и назначать задачи прослушивателя событий.
Код: Выделить всё
def run(task_arg):
# core logic of the listener which continuously listens for the
# events
def using_executor():
argument_dicts = [
{"topic": "/captureSaveEvent"},
]
logging.basicConfig()
with concurrent.futures.ThreadPoolExecutor(max_workers=20) as executor:
futures = {executor.submit(run, arg): arg for arg in argument_dicts}
for future in concurrent.futures.as_completed(futures):
try:
future.result()
except Exception as e:
print(f"Thread for {futures[future]} failed with exception: {e}")
Я ожидаю, что мне нужно знать идентификатор процесса и, используя этот pid, Я должен иметь возможность выбрать поток из этого процесса, который сможет свободно принимать новые задачи и отправлять ему задание.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ad-in-pyth