我正在使用 Flask-Mail 扩展来启用应用程序中的邮件发送。我无法让 celery 与烧瓶一起使用,所以我查找了其他一些库并找到了Redis Queue。
代码:
from flask.ext.mail import Mail,Message
from rq import Queue
mail = Mail() # mail.init_app(app) is done in top app.py
q = Queue()
@mod.route('/test')
def m11():
msg = Message("Signup Successfull",
recipients=['abc@gmail.com'])
msg.body = "Hello there, Welcome!"
q.enqueue(mail.send, msg)
return 'done'
当我运行代码时,rqworker 中的邮件发送失败,出现以下错误:
17:04:49: *** Listening on default...
17:06:08: default: flaskext.mail.send(<flaskext.mail.message.Message object at
0x1027a9750>) (8c86f0f9-ae76-4297-bf17-a171a67f1b44)
17:06:08: 'module' object has no attribute 'send'
17:06:08: Moving job to failed queue.
这个错误的原因是什么?
编辑:没有属性 send 是因为 send 是一个实例方法。
现在有不同的问题。我收到邮件对象没有任何属性应用程序的错误。我猜 rq 的新进程不知道我的烧瓶应用程序,因此不知道错误。如何解决这个问题呢?