@celery.task
def send_async_email(data, email):
"""Background task to send an email with Flask-Mail."""
with app.app_context():
find_book = FindBook(data)
# штука которая долго делается
result = find_book.search_books()
msg = Message("You've requested search for %s" % data,
recipients=[email])
msg.body = 'This is a test email sent from a background Celery task.'
msg.html = render_template('mail.html', result=result)
mail.send(msg)
def search():
form = SearchForm()
if form.validate_on_submit():
send_async_email.delay(form.search.data, form.email.data)
return redirect(url_for('success'))
return render_template('search.html', title='Search', form=form)
QGNlbGVyeS50YXNrCmRlZiBzZW5kX2FzeW5jX2VtYWlsKGRhdGEsIGVtYWlsKToKICAgICIiIkJhY2tncm91bmQgdGFzayB0byBzZW5kIGFuIGVtYWlsIHdpdGggRmxhc2stTWFpbC4iIiIKICAgIHdpdGggYXBwLmFwcF9jb250ZXh0KCk6CiAgICAgICAgZmluZF9ib29rID0gRmluZEJvb2soZGF0YSkKICAgICAgICAjINGI0YLRg9C60LAg0LrQvtGC0L7RgNCw0Y8g0LTQvtC70LPQviDQtNC10LvQsNC10YLRgdGPCiAgICAgICAgcmVzdWx0ID0gZmluZF9ib29rLnNlYXJjaF9ib29rcygpCiAgICAgICAgbXNnID0gTWVzc2FnZSgiWW91J3ZlIHJlcXVlc3RlZCBzZWFyY2ggZm9yICVzIiAlIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICByZWNpcGllbnRzPVtlbWFpbF0pCiAgICAgICAgbXNnLmJvZHkgPSAnVGhpcyBpcyBhIHRlc3QgZW1haWwgc2VudCBmcm9tIGEgYmFja2dyb3VuZCBDZWxlcnkgdGFzay4nCiAgICAgICAgbXNnLmh0bWwgPSByZW5kZXJfdGVtcGxhdGUoJ21haWwuaHRtbCcsIHJlc3VsdD1yZXN1bHQpCiAgICAgICAgbWFpbC5zZW5kKG1zZykKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKZGVmIHNlYXJjaCgpOgogICAgZm9ybSA9IFNlYXJjaEZvcm0oKQogICAgaWYgZm9ybS52YWxpZGF0ZV9vbl9zdWJtaXQoKToKICAgICAgICBzZW5kX2FzeW5jX2VtYWlsLmRlbGF5KGZvcm0uc2VhcmNoLmRhdGEsIGZvcm0uZW1haWwuZGF0YSkKICAgICAgICByZXR1cm4gcmVkaXJlY3QodXJsX2Zvcignc3VjY2VzcycpKQoKICAgIHJldHVybiByZW5kZXJfdGVtcGxhdGUoJ3NlYXJjaC5odG1sJywgdGl0bGU9J1NlYXJjaCcsIGZvcm09Zm9ybSk=