我想要做的(并且已经完成)是访问相同的MySQL数据库。和来自PHP脚本和Django应用程序的表。但是,我想知道我这样做的方式是否会导致错误或问题。我希望你能帮忙:)。
截至目前的设置:
问题是我正在建立一个2路短信网关的东西。 用户向sms-gateway提供者发送sms消息,然后向后者发送POST请求到我指定的URL。
mydomain.com/gateway/receive.php
此脚本将数据(由网关提供商定义)消息,发件人,代码插入MySQL数据库。还有一个名为gateway的表...以及一个名为'retrieve'的变量,它首先是一个布尔值和= False。然后它返回一个XML响应给网关提供者,以便他们可以确定已经传递了短信(并通过短信通知用户)
每隔几分钟,我的django app。通过相同的数据库查看。和table并查找所有带有“retrieve = False”的短信条目。对于每个对象,使用相同的数据创建Django应用程序中的新对象(此对象然后绑定到确切的用户,加时间戳,格式化等等),并且来自网关表的原始对象设置为“retrieve = True”然后保存...(以防万一...并用于“日志”目的)
我使用PHP的原因是因为托管服务的响应时间。 PHP更快(直接在nginx服务器之后)而不是django应用程序。它位于自定义构建apache2服务器上。因此,为了使设置的短信部分正常工作,我将不得不使用PHP作为该部分。另外我发现简单的PHP脚本比更复杂的apache2 + Django设置更不容易停机。
所以问题是......这会导致任何问题......让PHP和Django / Python脚本访问相同的mysql数据库。同时?是不是设计这种事情的正确方法......我主要担心的是PHP脚本在插入新内容时遇到的麻烦,而Django部分读取/编辑旧的东西(或相同的东西)
我希望这是有道理的。那你可以帮忙......?可能是一个非问题...我只想有一点确定性:)
感谢。
问候
皮特
答案 0 :(得分:0)
使用transactions,甚至是in queries。
答案 1 :(得分:0)
只要您的第一个流程只是插入新数据而第二个流程/更新现有记录,您就应该非常安全。如果没有,那么你应该考虑使用乐观或悲观锁定和/或使用交易。