我有一个非常简单的用例。 我有几个并行运行的Azure Logic Apps实例,每个Logic App都调用Azure函数来确定是否需要处理当前消息。 Azure函数读取Redis缓存中的条目,并将该值与来自Logic App当前处理的消息的值进行比较。
如果消息中的值大于缓存中存储的值(或者缓存中不存在值),则缓存中的值将被覆盖,函数返回“true”以指示该消息必须处理。
如果缓存中的值大于或等于消息的值,则函数返回“False”,逻辑应用程序忽略该消息。
因为我可以并行运行大量Logic App,所以我希望避免以下情况:Azure函数从缓存中读取值,然后比较它并在比较期间,Azure函数的另一个实例覆盖缓存中的值。我不想限制同时运行的并发Azure函数的数量,因为我需要并行处理大量消息。
在这个用例中,我应该使用“Lua”来进行读/比较并在单个原子事务中写入吗?