簡體   English   中英

Redis或Python / Heroku中的線程?

[英]Redis or threads in Python/Heroku?

我對此並不陌生,所以如果我要問的是完全愚蠢的事情,請多包涵。

我正在開發一個基本的Web應用程序,並使用Heroku + flask + python。

對於后台任務,Heroku建議使用工作程序。 我想知道是否可以為這些后台任務創建新線程? 還是有一個原因使worker + redis是更好的解決方案?

這些后台任務實際上並不重要。

在單獨的工作人員中執行此操作的主要好處是,您可以將應用程序與后台任務完全脫鈎,因此,如果一個中斷,則不會影響另一個。 就是說,如果您對此不關心,或者出於任何原因需要將后台任務與應用程序緊密關聯 ,則可以使用APScheduler使后台任務作為單獨的線程運行,而無需增加其他工作人員。 一個每10秒運行一次后台作業的簡單示例如下:

from apscheduler.schedulers.background import BackgroundScheduler
def some_job():
    print "successfully finished job!"
apsched = BackgroundScheduler()
apsched.start()
apsched.add_job(my_job, 'interval', seconds=10)

如果您希望任務異步運行而不是按計划運行,則可以使用RQRQ在其主頁上有很好的示例。 RQ由Redis支持,但是您可以在單獨的工作進程中運行它,盡管您願意的話也可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM