在Push Queue(GAE)中使用名称空间api实现多租户

时间:2018-08-23 03:06:25

标签: google-app-engine google-cloud-platform multi-tenant

计划使用命名空间API来为我们的GAE应用程序提供多租户支持,因此正在经历namespace API documentation,这表明命名空间API支持推送队列,但并没有完全解释命名空间如何用于推送队列。

因此,理想情况下,我们想要的是将任务推送到队列A中,并对每个命名空间分别进行处理。也就是说,如果在带有 namespace-X queue-A 中,有100个任务正在等待,而 namespace-Y 中只有5个任务,则名称空间-Y的任务不应等待名称空间-x中的100个任务完成。

例如:-

队列名称-queue-A
客户-client-Xclient-Y

现在,客户端X和客户端Y都进入名称空间分别为XY queue-A 。因此,我们对命名空间的期望是: client-X 的队列A中是否有很多工作日志,这些工作日志不应该影响 client-Y的 任务处理速度

是否可以在名称空间API中自动处理此问题,因为我认为这在多租户应用程序中很常见,即使仍然无法实现?

1 个答案:

答案 0 :(得分:0)

我认为名称空间在任务调度逻辑中没有任何含义。从您提到的文档的任务队列示例中,您可以看到,只有在实际处理任务,调度逻辑已经完成时,名称空间信息才会恢复。

但这还算不错-为了正确操作,您的应用程序的扩展和队列配置通常应设置为处理您期望的最大工作负载(结合所有命名空间),在这种情况下,如果一个特定租户对另一个租户的影响,任何,都可以忽略不计。