【发布时间】:2017-09-28 01:53:26
【问题描述】:
我正在开发一个带有 xamarin 和 azure serverless 功能的应用程序作为应用程序的后端。 我将通过云端数据库实时同步用户的地图坐标。即:从所有用户获取坐标,然后将更新后的坐标同时推送给所有用户,持续,以便所有用户都能看到彼此的实时位置。
所以我必须在 连续循环 中调用 azure 函数,以便将数据库与云同步。所以它可以每隔 4-5 秒检查一次数据库。这是最好的方法吗?或者这会导致天蓝色功能的执行过多并且可能代价高昂?如果有更好的同步数据库的方法,请提出建议。谢谢。
【问题讨论】:
-
使用 Azure 服务总线以一对多主题/订阅作为开始查看“代理消息传递”:docs.microsoft.com/en-us/azure/service-bus-messaging/… 您还可以根据添加到队列(
ServiceBusQueueTrigger)。你不想尝试连续循环一个 Azure 函数,此时假脱机一个实例并让它做你连续的脏工作.... ;-) -
@SushiHangover 设置一个什么实例? :P 一个 azure 通话最多可以持续 5 分钟。但是我的连续工作可能会长达一个小时左右,这意味着我必须持续跟踪一个组的地理位置更长的时间,那个时间不是固定的,它可以是可变的,
-
假脱机运行您的代码的“VM”实例(或 Docker 容器)......但是您可以使用 Azure 服务总线,并且您不必在在云中,每个客户端/设备通过主题将其更改位置发布到总线,并且所有订阅该主题的客户端都会收到这些位置更改。现在,其中一个“客户端”可能是一个 VM 或 Docker 容器,它也在对这些位置执行某些操作,或者您有一个为每个已发布位置调用的 Azure 函数(通过 ServiceBusQueueTrigger),您可以将其推送到日志、数据库等
-
如果我不需要记录它们,我根本不需要 azure 函数或 VM/Docker 吗?其次,天蓝色服务总线的成本如何?它的成本与 VM 相似(持续运行)还是与功能相似(仅针对发送的特定主题收费)?
标签: database azure synchronization azure-functions serverless