我有一个Flask Web应用程序,该应用程序通过HTTP POST定期从另一个应用程序接收JSON信息。
我的Flask Web应用程序正在具有python 2.7.x的CentOS 7服务器上运行。
我能够在Flask Web应用程序中从收到的JSON解析字段,并获取一些我感兴趣的信息。例如:我得到一些JSON输入并从中提取一个“ ID”:“ 7”字段。
我现在想做的是通过使用这个“ ID”:“ 7”在这个Flask Web应用程序中运行一个perl脚本。
在命令行上手动运行'perl my_perl_script.pl 7'可以正常工作。我想要的是让Flask Web应用程序在收到HTTP POST时通过使用此POST中找到的特定ID号自动执行此操作。
如何在Flask中做到这一点? 用subprocess调用是一个好主意,还是我应该考虑使用Celery / rq实现队列?还是其他解决方案?
我认为应该将Perl脚本作为独立的Linux进程来调用,而不依赖于Flask Web应用程序。
预先感谢您:)
答案 0 :(得分:1)
Sub
我对子流程投赞成票,这里是a post on SO。这样,Flask仍然可以控制。一种替代方法是编写一个Perl脚本,该脚本根据您的需要监视触发事件,但这会使更多的过程控制置于事物的perl方面,而资源的使用效率较低。