[英]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 ++)。
感谢您的任何建议或指出我所缺少的东西。
布莱尔
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.