问题描述
我有2个Cloud Foundry应用程序。 在第一个应用程序上,我已推送了具有0个实例的Windows exe 此应用程序的Manifest.yml如下所示:-
applications:
- name: sampleApp
stack: windows2012R2
instances: 0
memory: 512M
no-route: true
health-check-type: none
buildpacks:
- binary_buildpack
我已经在其他Cloud Foundry应用程序上创建了POST Flask API,该API将从用户那里收集文件。
现在我要使用此文件运行sampleApp,有人可以帮助我如何链接这两个应用程序吗?
解决方法
乍一看,这似乎很容易,但是当部署到Cloud Foundry时,您的两个应用程序是完全分开的。它们在不同的容器中和不同的OS堆栈上运行(Python是Linux,您的exe是Windows)。这不像简单地炮轰并运行一个外部进程那样简单。
要进行类似的工作,您需要在两个应用程序之间添加一个通信通道。通常有一个或多个Web进程将消息发送到一个或多个工作人员(独立扩展)的池中,这些池执行潜在的CPU / RAM密集型任务。
如何在两者之间进行通信取决于您。您可以创建REST端点,使用gRPC或消息代理(STOMP,RMQ等)。您只需同意,您的Web UI便会知道如何将消息传递给工作人员。
如果您不能像第三方提供的那样修改exe,则需要将其与可以执行通信的应用程序包装在一起,然后安装并运行您的exe。