Sql Azure应用程序功能:此方案的最佳方法

Sql Azure应用程序功能:此方案的最佳方法,sql,azure-functions,Sql,Azure Functions,我正在开发一个小游戏,玩家拥有用于执行一些自动操作的机器人。最简单的例子是命令机器人把他送到一个特定的位置。基本上,用户给它一个位置,机器人就去了。我已经使用了很多Azure应用程序功能,我想用它们来进行droid移动 在我的脑子里,我想做一个每分钟都会触发的功能,让所有需要移动的机器人都移动,然后让它们移动 这种方法的问题是,如果游戏很流行,可能会有数百个机器人,我必须确保函数执行时间保持在分钟以下 我想检索所有需要移动的机器人,然后每个机器人通过其URL调用Azure应用程序函数,使其为这个

我正在开发一个小游戏,玩家拥有用于执行一些自动操作的机器人。最简单的例子是命令机器人把他送到一个特定的位置。基本上,用户给它一个位置,机器人就去了。我已经使用了很多Azure应用程序功能,我想用它们来进行droid移动

在我的脑子里,我想做一个每分钟都会触发的功能,让所有需要移动的机器人都移动,然后让它们移动

这种方法的问题是,如果游戏很流行,可能会有数百个机器人,我必须确保函数执行时间保持在分钟以下

我想检索所有需要移动的机器人,然后每个机器人通过其URL调用Azure应用程序函数,使其为这个特定的机器人执行。在我看来,这会使执行有点并行,但我不确定我是否正确

我还必须考虑是否使用sql事务,以确保不会造成死锁

最后一个问题是“如何处理潜在大量数据的重复处理并确保其保持在分钟以下?”


感谢您的建议

通常,您可以使用队列处理此类情况。每个订单都成为一条队列消息,然后由它触发Azure函数并处理订单。它可以并且将根据队列中的消息量进行扩展


如果您的逻辑仍然需要基于计时器的处理,则计时器应尽可能精简,例如,将队列消息发送到执行实际工作的队列。

通常,您使用队列处理此类情况。每个订单都成为一条队列消息,然后由它触发Azure函数并处理订单。它可以并且将根据队列中的消息量进行扩展


如果您的逻辑仍然需要基于计时器的处理,则计时器应尽可能精简,例如,将队列消息发送到将执行实际工作的队列。

问题在于,队列可能变得太大,以至于同一droid的两次执行之间的间隔大于一分钟。但是我看不出有什么神奇的解决办法。。。我想这就是为什么你说核心必须尽可能的精简。问题是队列可能变得如此之大,以至于同一个机器人的两次执行间隔超过一分钟。但是我看不出有什么神奇的解决办法。。。我想这就是为什么你说核心必须尽可能的瘦。