繁体   English   中英

从Web服务器在AWS上触发Python脚本

[英]Trigger a Python Script on AWS from Web Server

简要介绍一下我当前的设置:

HTML表单,用于收集Python脚本的数据

PHP将表单数据(POST)插入输入的MySQL表中

PHP exec的Python3.4 script.py row_id

Python使用sys.argv[1]收集了行ID,然后运行代码并将结果插入到输出MySQL表中。 完成后,PHP将显示一个报告(PHP等待Python完成),然后使用header转到报告URL。

报告页面为html,空白部分由MySQL从输出MySQL表中填充。

这对我的测试和开发工作正常。 问题出在我将其发布以进行公司内部的更常规测试时-它托管在VPS服务器上,并且当服务器运行多个Python实例时,它像狗一样运行(正如我们在苏格兰所说,因为说慢点太容易了)。

当然,托管公司建议进行升级,这是我们所做的,并且使容量增加了一倍(从1个,有时同时运行2个,到2个有时3个)。 我现在得出的结论是这种方法不可扩展,我们总是会遇到某种限制。

因此,我一直在研究Amazon Web Services,但是要做到这一点,就需要改变Python设计的理念-它必须一直运行,并且以某种方式馈送数据(据我所知)。

亚马逊的建议是Flask或类似的框架,但这意味着我要么拥有两台Web服务器,就必须进行某种跨域数据传输,要么废弃我所做的工作-或至少大量修改我的PHP / HTML / JS在网络服务器上运行,以便Flask可以提供服务,而所有服务都可以由AWS托管。

除非有人可以提出不需要Web框架的另一种通信方式,否则我一直在考虑要么定期轮询MySQL数据库并处理任何新数据,要么将数据库迁移到Postgre,我相信这允许使用Python代码在数据库结构中运行,并使我能够在插入时触发(我相信MySQL中用户定义的触发器仅支持C / C ++)。

感谢您的任何建议或指出我所缺少的东西。

布莱尔

除了infinigrove的建议之外,Pyro4在我的用例中很好用,还有一个出色的教程 ,提供了简单的学习曲线。

Selcuk的建议可能也可行,但我仍然会遇到在分布式环境中的其他服务器上运行代码的问题。 另外,如果在编写Python代码和编写PHP之间可以选择的话,恐怕我每次都会选择Python!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM