Пользовательский поток планировщика после запуска выполняется параллельно основным потоком и работниками gunicorn

#python-3.7 #gunicorn #gevent

Вопрос:

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

Мы переместили нашу базу кода с python2 на python 3.

Мы исправляем ошибки с гевентом перед вызовом потока планировщика.

Как только оружейный рожок начнется, скажем, с двух рабочих.

Код метода scheduler_service run() разветвляется и обслуживается всеми 3 потоками параллельно.

Мы хотим, чтобы с этим справлялся только один поток. В чем может быть проблема, как с python2, и без исправления обезьяны он работал нормально?

Комментарии:

1. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Именно так он и должен себя вести. Вам нужна одноэлементная ссылка, разделяемая между потоками, которая позволяет ведущему иметь приоритет. Обычно модель базы данных, которая отслеживает текущие сетевые потоки, с проверкой и логикой отработки отказа, если кто-то больше не регистрируется в качестве ведущего.