Как ограничить количество потоков до одного
Как можно изменить эту функцию, чтобы она выполнялась только в одном потоке? Возможно ли это? Должна ли у меня быть отдельная функция для этого? Я пытался создать словарь и считать каждый цикл, но это не имеет смысла, потому что после использования 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)