首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dotcloud多项服务

Dotcloud多项服务
EN

Stack Overflow用户
提问于 2012-08-11 06:45:06
回答 1查看 295关注 0票数 1

我刚接触过dotcloud,对多个服务如何协同工作感到困惑。

我的yaml构建文件是:

代码语言:javascript
复制
www:
  type: python
db:
  type: postgresql
worker:
  type: python-worker
broker:
  type: rabbitmq

我的监督文件包含启动django芹菜和celerycam的命令。

当我把我的代码推到我的应用程序中时,我可以看到两家www & worker服务都启动了自己的芹菜和芹菜凸轮实例,例如日志文件也会有所不同。这是有意义的(虽然在IMO的dotcloud文档中并不十分清楚--文档讨论了如何设置工人服务,而不是如何将其与其他服务结合起来),但确实提出了如何配置一个应用程序的问题,其中python服务主要服务于web页面,而python工作者服务则处理后台任务,例如: celery。

dotcloud文档守护进程提到了这一点:

“但是,您应该知道,当您缩放应用程序时,cron任务将在所有缩放的实例中被调度--这可能不是您所需要的!因此,在许多情况下,使用单独的服务仍然更好。” 类似地,许多(非工作人员)服务已经运行了Supervisor,因此您可以在这些服务中运行额外的后台作业。同样,请记住,如果您缩放应用程序,这些后台作业将在多个实例中运行。此外,如果将后台作业添加到web服务中,它将获得更少的资源来服务页面,您的性能将受到重大影响。“

如何将dotcloud &您的应用程序配置为只在一个服务上运行and服务器,以及在员工服务上运行后台任务?您是通过增加芹菜中的并发设置(并垂直缩放一个服务)、增加额外的员工服务,还是同时增加两者来扩展员工?

您会这样做吗?首先,use服务器服务不必在处理后台任务时使用资源,其次,您可以独立于use服务器服务扩展员工服务吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-13 22:40:16

有两个窍门。首先,您可以使用不同的接近者来区分它们将运行的代码:

代码语言:javascript
复制
www:
  type: python
  approot: frontend
# ...
worker:
  type: python-worker
  approot: backend
# ...

其次,由于您的后安装脚本对于每个审批者来说是不同的,所以您可以将一个文件复制出来,从而成为该特定服务的正确supervisord.conf。

您可能还想看看django-celery的dotCloud教程和示例代码。

/Andy

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11912631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档