Как ограничить количество потоков до одного

Как можно изменить эту функцию, чтобы она выполнялась только в одном потоке? Возможно ли это? Должна ли у меня быть отдельная функция для этого? Я пытался создать словарь и считать каждый цикл, но это не имеет смысла, потому что после использования import pdb;pdb set_trace () я вижу, что используется больше потоков "<Thread(Thread-4 (eventFunc), initial daemon)>"

Код:

def event(codeName=None, context=None, attachments=None, is_thread=True, **kwarks):
    if settings.IS_EVENT_ACTIVE:
        #print(u"Event [{}]".format(codeName))
        # logger.debug(u"Event [{}] {}".format(codeName,traceback.print_exc()))
        logger.debug(u"Event [{}]".format(codeName))
        if portalSetting.EVENT_THREAD and is_thread:
            x = threading.Thread(target=eventFunc, args=(codeName, context, attachments, ), kwargs=kwarks)
            # import pdb;pdb.set_trace()
            x.start()
        else:

            eventFunc(codeName=codeName, context=context, attachments=attachments, **kwarks)
Вернуться на верх