1

我有一个多租户应用程序,每个租户/客户端都有一个压缩包,其中包含每个公共站点的模板和处理程序。现在我有50个以下的租户,并且可以在向特定客户端域的第一次请求后将导入的应用程序保留在内存中。压缩包和内存存储策略

这种方法运行良好,但每次我进行更改和/或添加新客户端时,我都必须重新部署带有新客户端压缩包的应用程序。

现在我正在努力使上传这些包通过网络上传和存储他们到blobstore。

我担心现在:

  • 获得从Blob存储包当然是比在文件系统中导入压缩包较慢。 但这不是最大的问题。

  • 如何加载/导入不在文件系统中且没有路径的模块?

  • 如果每个客户端软件包都在1mb左右,只要客户端基数很低,那么它不是问题,但如果将 提高到1k甚至更多,该怎么办?显然,我没有足够的内存在内存中存储几GB的数据。 处理这个问题的最好方法是什么?

  • 如果我使用实例内存在内存中存储以前的租户包,如果会有新上传的包, 会如何使内存中的数据无效?

我会很感激一些关于如何处理这种情况。

+0

您可否详细说明每个“包装”中包含的内容?这些只是静态资产,如图像或CSS? – Sologoub

+0

它的一个完整的应用程序与处理程序,模板,CSS,图像... – aschmid00

+0

如此静态文件和* .py – aschmid00

回答

1

我同意昵称。租户特定的zip中不应该有python代码。解决内存问题,我会缓存数据存储区中的大部分页面。为他们服务,你不需要在你的实例中加载所有的租户。你也可能想在保存前生成html视图,而不是根据请求。