jdo*_*dot 23 python heroku redis
我在Heroku上有一个Python Flask应用程序,用于提供网页,但也允许启动某些任务,我相信这些任务最适合作为后台任务.因此,我遵循Heroku rq教程来设置后台任务.我的Procfile看起来像这样:
web: python app.py
worker: python worker.py
Run Code Online (Sandbox Code Playgroud)
但是,我的流程目前正在扩展web=1 worker=0.鉴于这种背景过程不会经常运行,我似乎不明智地为它配置一个完整的dyno然后为那么小的东西支付34美元/月.
题:
worker进程保留在我的Procfile中但是保持扩展web=1 worker=0,那么我的排队进程最终会在我的可用web dyno 上运行吗?或者排队的进程永远不会运行?twisted在我的Web应用程序中使用异步运行任务吗?附加信息
worker.py 看起来像这样:
import os
import redis
from rq import Worker, Queue, Connection
listen = ['high', 'default', 'low']
redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')
conn = redis.from_url(redis_url)
if __name__ == '__main__':
with Connection(conn):
worker = Worker(map(Queue, listen))
worker.work()
Run Code Online (Sandbox Code Playgroud)
排队进程的主应用程序中的逻辑如下所示:
from rq import Queue
from worker import conn
q = Queue(connection=conn)
q.enqueue(myfunction, myargument)
Run Code Online (Sandbox Code Playgroud)
Ken*_*itz 12
$ cat Procfile
web: bin/web
$ cat bin/web
python app.py &
python worker.py
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7433 次 |
| 最近记录: |