在返回render_template后执行其他任务



在flask应用程序中,我需要在执行return render_template(page)后执行其他任务的checkJob功能(检查作业状态和电子邮件给用户)。用户将看到确认页面,但仍有后台作业正在运行以检查作业状态。

我试图使用芹菜https://blog.miguelgrinberg.com/post/using-celery-with-flask为后台工作,它不工作。return render_template(page)之后的任何内容都不会被执行。

下面是代码片段:

@app.route("/myprocess", methods=['POST'])
def myprocess():
    //.... do work
    #r = checkJob()
    return render_template('confirm.html')
    r = checkJob()
@celery.task()
def checkJob():
    bb=1
    while bb == 1:
       print "checkJob"
       time.sleep(10)

根据评论中的建议,您应该使用apply_async()

@app.route("/myprocess", methods=['POST'])
def myprocess():
    #.... do work
    r = checkJob.apply_async()
    return render_template('confirm.html')

请注意,与示例一样,您不希望调用checkJob(),而希望保持checkJob的样式。

相关内容

  • 没有找到相关文章

最新更新