Django send_mail“已经锁定了。戒烟。”

时间:2011-04-14 22:51:49

标签: python django mailer filelock

我在Django中遇到send_mail的问题。它一直工作正常,直到我尝试更改某些电子邮件设置,以使其使用EMAIL_HOST_USER和EMAIL_HOST_PASSWORD。当我这样做时,我的测试电子邮件发送到未发送的地方。

我恢复了原来的电子邮件设置,但是现在仍然没有发送电子邮件。我重新启动了一些东西以确保我当前的设置生效。当我运行命令'python manage.py send_mail'来测试我得到这个回复:

  

获得锁定......   已锁定到位。戒烟。

查看mailer.engine中的代码:

def send_all():
    """
    Send all eligible messages in the queue.
    """

    lock = FileLock("send_mail")

    logging.debug("acquiring lock...")
    try:
        lock.acquire(LOCK_WAIT_TIMEOUT)
    except AlreadyLocked:
        logging.debug("lock already in place. quitting.")
        return
    except LockTimeout:
        logging.debug("waiting for the lock timed out. quitting.")
        return
    logging.debug("acquired.")

    start_time = time.time()

    dont_send = 0
    deferred = 0
    sent = 0

看起来因为它获得了“AlreadyLocked”异常,所以它会在不发送电子邮件的情况下退出。如果确实如此,我该如何打破这个锁并重新开始?

1 个答案:

答案 0 :(得分:7)

很可能你的目录中有一个“锁定文件”('send_mail') - 只需删除它