Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在两个Django项目之间共享模型(和表)_Database_Django_Model_Celery - Fatal编程技术网

Database 在两个Django项目之间共享模型(和表)

Database 在两个Django项目之间共享模型(和表),database,django,model,celery,Database,Django,Model,Celery,我想通过复制模型,从django主项目到另一个django项目,分享繁重的过程 这意味着共享数据库表。这里有一个图表来解释这些表是如何共享的:按照编号的箭头查看我如何想象信息流 界面项目是拼图的用户交互部分,它处理输入和输出,并定义用户希望解决的问题。SOLVE项目解决了用户定义的繁重问题,准备好后,将解决方案作为记录放入自己的表中,接口可以从中读取,并将接口显示回用户 在两个ORM的同步方面,这种设计会有什么样的警告? 这是个好主意吗?换句话说,您正在重新创建一个任务队列 也就是说,接口只插

我想通过复制模型,从django主项目到另一个django项目,分享繁重的过程

这意味着共享数据库表。这里有一个图表来解释这些表是如何共享的:按照编号的箭头查看我如何想象信息流

界面项目是拼图的用户交互部分,它处理输入和输出,并定义用户希望解决的问题。SOLVE项目解决了用户定义的繁重问题,准备好后,将解决方案作为记录放入自己的表中,接口可以从中读取,并将接口显示回用户

在两个ORM的同步方面,这种设计会有什么样的警告?
这是个好主意吗?

换句话说,您正在重新创建一个任务队列

也就是说,接口只插入表示“为我做这件事”的记录,然后从“这件事是为你做的”表(或者同一个表,没关系)中检索结果

您真正想要的是某种远程异步rpc调用接口,是的,如果您愿意,可以用这种方式重建

我仍然建议重新评估芹菜——我已经在好几次场合推迟了评估,但现在我已经设置好了,这让我震惊,我没有更早地使用它。您甚至可以使用Django DB作为消息队列后端(尽管我只想说对低容量站点这样做)

无论如何,关于具体问题:

使用相同DB表的两个独立进程不存在继承问题,Django和您的DB连接器都不会在这方面添加额外的约束

您将需要您的工作进程(“solve”)定期轮询DB以查找要执行的任务,或者向其发送消息(提示:芹菜!)。用户界面客户端(“界面”)可以在用户刷新时检查数据库

从实现的角度来看,在两个项目中完全共享代码(所有模型、视图等)可能是最简单的。您将有一个进程以正常方式启动ui web服务器,而对于工作者来说,连接自定义管理命令可能是启动工作者循环的最简单方式


如果在打算写入行时不使用,则可能会在db锁定/竞争条件方面遇到一些问题。或者,您可以使用来避免争用,但这仅限于1.5版本。

我真的忘记了django db可以用作队列。谢谢