如何在OpenShift上运行各种工作者?

时间:2016-03-29 13:42:52

标签: python flask openshift

我有一个Python / Flask项目(API),其中包含一些必须连续运行的工作程序。他们使用外部提供商(https://redislabs.com/)连接到Redis。我没有找到如何配置Openshift来运行我的工作人员。使用Heroku时,它很简单:

In[8]

但对于Openshift,尽管谷歌搜索了许多东西,但我找不到任何可以帮助我的东西。理想情况下,我会避免将我的应用程序部署到每个齿轮。如何使用OpenShift运行多个worker?

2 个答案:

答案 0 :(得分:1)

取自Getting Started with Openshift by Katie J. Miller and Steven Pousty

  

     

要让装备做任何事情,您需要添加一个墨盒。盒式磁带是容纳可用于创建和运行应用程序的框架或组件的插件。一个或多个弹药筒在每个齿轮上运行,并且相同的弹药筒可以在许多齿轮上运行以进行聚类或缩放。有两种墨盒:

     

独立

     

这些是为您的Web内容提供服务的语言或应用程序服务器,例如JBoss,Tomcat,Python或Node.js.使用其中一个墨盒足以运行应用程序。

     

嵌入式   嵌入式盒式磁带提供了增强应用程序的功能,例如数据库或Cron,但不能单独用于创建和应用。

TL; DR:您必须使用墨盒来运行工作进程。可以找到文档herehere,社区隐藏的示例here和一系列博客文章开始here

墨盒是一堆文件和清单,让操作系统知道如何运行墨盒以及如何解决色板。

但是,让我们建立一些东西。创建一个Django / Python应用程序,结果是:

the demo django app

现在从底部的链接或命令行工具安装(自定义)盒式磁带,您可以使用指向盒式磁带存储库的链接。

答案 1 :(得分:0)

OpenShift与外部服务的集成是通过配置相关的环境变量来完成的,如下所述:https://developers.openshift.com/external-services/index.html#setting-environment-variables

Heroku的应用依赖于自动配置的REDISCLOUD_URL env var - 您需要在OpenShift部署中设置类似的内容,并在服务的信息中心中提供有关数据库的适用信息。