换句话说,您正在重新发明一个任务队列?
也就是说,接口只是插入表示“为我做这个”的记录,然后从“这是为你做的”表(或同一个表,没关系)中检索结果?
您真正需要的是某种远程异步 rpc 调用接口,是的,如果您愿意,您可以以这种方式重建。
我仍然建议重新评估芹菜 - 我已经多次推迟了它,但现在我已经设置了它,这让我很震惊,我之前没有使用它。您甚至可以使用 Django DB 作为消息队列后端(尽管我只说对低容量站点这样做)。
无论如何,至于具体问题:
使用相同数据库表的两个独立进程没有继承问题,Django 和您的数据库连接器都不会在这方面添加额外的约束。
您将需要您的工作进程(“解决”)定期轮询数据库以查找要执行的任务,或向其发送消息(提示:芹菜!)。您的 ui 客户端(“界面”)可以在用户刷新时检查数据库。
从实现的角度来看,在两个项目之间完全共享代码(所有模型、视图等)可能是最简单的。您将有一个进程以正常方式启动 ui Web 服务器,对于工作人员来说,连接自定义管理命令可能是启动工作人员循环的最简单方法。
如果您在打算写入行时不使用select_for_update ,那么您“可能”会遇到一些与数据库锁定/竞争条件有关的问题。或者,您可以使用.save(update_fields=zzz)来避免争用,但这仅在 1.5 中。