Pra*_*kar 14 django heroku amqp celery
假设我在Procfile中声明了以下进程
web: newrelic-admin run-program python manage.py run_gunicorn -b 0.0.0.0:$PORT -w 9 -k gevent --max-requests 250 --preload --timeout 240
scheduler: python manage.py celery worker -B -E --maxtasksperchild=1000
worker: python manage.py celery worker -E --maxtasksperchild=1000
celerymon: python manage.py celerymon -B 0.0.0.0 -P $PORT
Run Code Online (Sandbox Code Playgroud)
我基本上必须运行一些主要网络流程的dynos.运行调度程序.跑几个工人.监控芹菜.单独使用托管的AMQP代理.
我尝试过在一个dyno上运行多个进程的替代方案,但它似乎不能可靠地工作,反正不是我想在生产中使用的东西.
我发现运行所有这些的成本有点过高,特别是当我认为我可以在一个dyno上将一些进程联合起来时.也许将调度程序与监视相结合,或者将调度程序和worker一起运行.
除此之外,Heroku只暴露了80和443个端口,并且无法在同一个dyno上的多个端口上运行服务.
优化流程和动态使用的优秀策略是什么?
另外,如果运行celerycam为你的成本增加另一个dyno,那么如何监控heroku上的芹菜任务呢?
| 归档时间: |
|
| 查看次数: |
2711 次 |
| 最近记录: |