return render_template(page)
を実行した後、フラスコのアプリケーションで、他のタスクのcheckJob
関数を実行する必要があります(ジョブの状態と電子メールを確認してください)。ユーザーに確認ページが表示されますが、まだジョブの状態を確認するために実行中のバックグラウンドジョブがあります。returnの後に他のタスクを実行するフラスコrender_template
バックグラウンドジョブでセロリ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)
'return'は(すべての)関数を終了するため、' return'の後には何も実行できません。それは関数を即座に残します。 'checkJob.delay()'を使って 'return'の前にやる必要があります。 – furas
Thanks @furas。私はreturn文の前にcheckJob.delay()を置こうとしましたが、問題はconfirm.htmlが表示されず、checkJobが終了するのを待っています。 confirm.htmlをすぐに表示してからcheckJobタスクを実行する方法はありますか?本当にありがとう!! –
私が見てきたように、あなたはセロリを使用しようとしていません。 –