Database 在两个Django项目之间共享模型(和表)
我想通过复制模型,从django主项目到另一个django项目,分享繁重的过程 这意味着共享数据库表。这里有一个图表来解释这些表是如何共享的:按照编号的箭头查看我如何想象信息流 界面项目是拼图的用户交互部分,它处理输入和输出,并定义用户希望解决的问题。SOLVE项目解决了用户定义的繁重问题,准备好后,将解决方案作为记录放入自己的表中,接口可以从中读取,并将接口显示回用户 在两个ORM的同步方面,这种设计会有什么样的警告?Database 在两个Django项目之间共享模型(和表),database,django,model,celery,Database,Django,Model,Celery,我想通过复制模型,从django主项目到另一个django项目,分享繁重的过程 这意味着共享数据库表。这里有一个图表来解释这些表是如何共享的:按照编号的箭头查看我如何想象信息流 界面项目是拼图的用户交互部分,它处理输入和输出,并定义用户希望解决的问题。SOLVE项目解决了用户定义的繁重问题,准备好后,将解决方案作为记录放入自己的表中,接口可以从中读取,并将接口显示回用户 在两个ORM的同步方面,这种设计会有什么样的警告? 这是个好主意吗?换句话说,您正在重新创建一个任务队列 也就是说,接口只插
这是个好主意吗?换句话说,您正在重新创建一个任务队列 也就是说,接口只插入表示“为我做这件事”的记录,然后从“这件事是为你做的”表(或者同一个表,没关系)中检索结果 您真正想要的是某种远程异步rpc调用接口,是的,如果您愿意,可以用这种方式重建 我仍然建议重新评估芹菜——我已经在好几次场合推迟了评估,但现在我已经设置好了,这让我震惊,我没有更早地使用它。您甚至可以使用Django DB作为消息队列后端(尽管我只想说对低容量站点这样做) 无论如何,关于具体问题: 使用相同DB表的两个独立进程不存在继承问题,Django和您的DB连接器都不会在这方面添加额外的约束 您将需要您的工作进程(“solve”)定期轮询DB以查找要执行的任务,或者向其发送消息(提示:芹菜!)。用户界面客户端(“界面”)可以在用户刷新时检查数据库 从实现的角度来看,在两个项目中完全共享代码(所有模型、视图等)可能是最简单的。您将有一个进程以正常方式启动ui web服务器,而对于工作者来说,连接自定义管理命令可能是启动工作者循环的最简单方式
如果在打算写入行时不使用,则可能会在db锁定/竞争条件方面遇到一些问题。或者,您可以使用来避免争用,但这仅限于1.5版本。我真的忘记了django db可以用作队列。谢谢