[英]url_for in celery doesn't work
我們正在構建一個通告通知郵件系統,作為python / flask系統的一部分,目前它已經使用cronjobs運行,但是我們將所有東西都轉移到了celery上,以使其性能更高且更易於維護。
但是,到目前為止一直在工作的模板突然開始引發以下錯誤:
[2017-05-29 20:30:30,411: WARNING/PoolWorker-7] [2017-05-29 20:30:30,411]
ERROR in mails: ERROR errorString => Could not build url for endpoint
'page.start' with values ['from_email']. Did you mean 'static' instead?
在外部模板中調用url_for,如下所示:
{{ url_for('page.start', _external=True) }}
並呈現如下:
message = render_template('notifs/user_notif.html',
subject=subject,
entries = grouped,
user=u,
unsubscribe_hash=pw_hash,
list_id = str(notif_list.id),
timestamp = today)
現在,如果我們刪除模板中的所有url_for,它將起作用。 但為什么? 我的假設(我無法檢驗或證明):celery無法訪問藍圖(即使它在應用程序上下文中運行,因為任務實際上訪問了各種模型和數據庫等)。 如何讓芹菜了解url_for?
剛遇到同樣的問題:
數據庫和模型的前面是您的ORM(Flask-sqlalchemy?),而不是Flask應用程序本身。 Flask應用程序為諸如url_for,current_user等之類的內容提供了上下文。您的orm僅提供數據庫抽象,而不取決於實際的應用程序上下文。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.