我希望社区能为我澄清一些问题,让其他人也受益。
我的理解是,gunicorn工作进程实际上是Heroku Web Dynos的虚拟副本。换句话说,Gunicorn的工作进程不应与Heroku的工作进程混淆(例如,Django Celery Tasks)。
这是因为Gunicorn工作进程专注于处理Web请求(基本上是提高Heroku Web Dyno的性能),而Heroku Worker Dynos则专门处理长时间运行的后台任务等远程API调用。
我有一个简单的Django应用程序,充分利用了远程API,并且我想优化资源平衡。我还在大多数请求中查询PostgreSQL数据库。
我知道这非常简单,但我是否正确地思考了这些问题?
一些相关信息:
我的理解是,gunicorn工作进程实际上是Heroku Web Dynos的虚拟副本。换句话说,Gunicorn的工作进程不应与Heroku的工作进程混淆(例如,Django Celery Tasks)。
这是因为Gunicorn工作进程专注于处理Web请求(基本上是提高Heroku Web Dyno的性能),而Heroku Worker Dynos则专门处理长时间运行的后台任务等远程API调用。
我有一个简单的Django应用程序,充分利用了远程API,并且我想优化资源平衡。我还在大多数请求中查询PostgreSQL数据库。
我知道这非常简单,但我是否正确地思考了这些问题?
一些相关信息:
https://devcenter.heroku.com/articles/process-model
https://devcenter.heroku.com/articles/background-jobs-queueing
https://devcenter.heroku.com/articles/django#running-a-worker
http://gunicorn.org/configure.html#workers
http://v3.mike.tig.as/blog/2012/02/13/deploying-django-on-heroku/
https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/gunicorn/
其他与此主题相关的有用SO问题:在Nginx + Gunicorn + Django堆栈上解决网站缓慢问题