Merge pull request #844 from koriaf/dev-log-handler

fix<process_email>: free the log file handler after it's not used anymore
This commit is contained in:
Garret Wassermann 2020-07-20 07:58:05 -04:00 committed by GitHub
commit c5226e983e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -74,18 +74,29 @@ def process_email(quiet=False):
if quiet:
logger.propagate = False # do not propagate to root logger that would log to console
logdir = q.logging_dir or '/var/log/helpdesk/'
handler = logging.FileHandler(join(logdir, q.slug + '_get_email.log'))
logger.addHandler(handler)
if not q.email_box_last_check:
q.email_box_last_check = timezone.now() - timedelta(minutes=30)
try:
handler = logging.FileHandler(join(logdir, q.slug + '_get_email.log'))
logger.addHandler(handler)
queue_time_delta = timedelta(minutes=q.email_box_interval or 0)
if not q.email_box_last_check:
q.email_box_last_check = timezone.now() - timedelta(minutes=30)
if (q.email_box_last_check + queue_time_delta) < timezone.now():
process_queue(q, logger=logger)
q.email_box_last_check = timezone.now()
q.save()
queue_time_delta = timedelta(minutes=q.email_box_interval or 0)
if (q.email_box_last_check + queue_time_delta) < timezone.now():
process_queue(q, logger=logger)
q.email_box_last_check = timezone.now()
q.save()
finally:
try:
handler.close()
except Exception as e:
logging.exception(e)
try:
logger.removeHandler(handler)
except Exception as e:
logging.exception(e)
def pop3_sync(q, logger, server):