我已经在Linux上使用python建立了系统原型。我现在正在设计架构,以迁移到基于Web的系统。我将使用Django服务公共和私有管理页面。我还需要运行一个服务,该服务将定期运行脚本,连接到Internet并允许与管理员用户进行API消息传递。因此将有3个组件:Web服务器,api_service和数据库。
1)在VM上部署python api_service的最佳机制是什么?我的背景主要是C ++ / C#,我通常会在与Web服务器相同的VM上部署C#编写的服务,并对API使用某种TCP消息传递包装。我的管理API代码将是从我的计算机运行的临时python脚本,以执行此服务中的功能。
2)我所有的数据库代码都写入到当前使用平面文件的接口中。有数据库建议吗? PostgreSQL,MongoDB,...
在此先感谢您提供的有用建议。我是前Windows / C ++ / C#开发人员,现在绝对喜欢Python / Cython,需要一点帮助...
答案 0 :(得分:0)
正确,正在回答我自己的问题。自发布以来已经做了相当多的研究。
2)PostgreSQL似乎是一个不错的选择。似乎没有关于使用它的严厉警告,并且有很多可搜索的帮助。因此,我正在实现具体的PostgreSQL类来实现我的序列化接口。
1)我不是使用远程计算机上的python实现我自己的服务,而是使用Celery。 RabbitMQ将充当分布式TCP消息包装器。我可以将所需的功能放在虚拟机上的python脚本中,Celery可以将其作为任务执行并执行。我可以通过3种方式运行这些Celery任务。 i)通过Django的Web请求可以将任务排队。 ii)我可以通过运行python脚本从我的机器手动将远程Celery任务排队。 iii)我可以使用Celery Beat定期安排任务。这可以完全满足我的需求,因为我可以安排一些日常/定期任务,还可以从计算机上执行一些罕见的维护任务。
然后总结一下,在创建可以处理传入TCP命令和预定行为的Windows服务之前,我可以使用VM上的RabbitMQ,Celery,Celery Beat和python脚本。
希望这可以帮助任何有类似“如何入门”问题的人...