Skip to main content
 首页 » 编程设计

python之Django 发送邮件 "lock already in place. quitting."

2025年05月04日24webabcd

我在 Django 中遇到 send_mail 问题。在我尝试更改一些电子邮件设置以使其使用 EMAIL_HOST_USER 和 EMAIL_HOST_PASSWORD 之前,它一直运行良好。当我这样做时,我的测试电子邮件未发送。

我恢复到原来的电子邮件设置,但现在仍然无法发送电子邮件。我已重新启动以确保我当前的设置生效。当我运行命令“python manage.py send_mail”进行测试时,我得到了这个响应:

acquiring lock... lock already in place. quitting.

在查看 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”,所以它在不发送电子邮件的情况下退出。如果真是这样,我该如何打破这个锁并重新开始?

请您参考如下方法:

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