如何在Elixir/Phoenix中的多个并发请求之间共享结果?
我有一个使用Phoenix用Elixir编写的API服务。它具有以下端点:如何在Elixir/Phoenix中的多个并发请求之间共享结果?,elixir,phoenix,Elixir,Phoenix,我有一个使用Phoenix用Elixir编写的API服务。它具有以下端点: 接收字符串参数 检查结果是否已存在于缓存中(DB或文件,参数为cache key): 如果是,请立即返回结果 如果否,则执行对第三方服务的外部请求,处理请求响应,缓存结果,然后返回 它工作得很好。但现在我想在并发请求之间共享结果:如果有一个请求a正在等待第三方服务响应或处理结果,那么具有相同参数的其他请求不应该执行相同的任务,它们应该等待来自请求a的结果 如果有人能帮我找到解决方案,我将不胜感激。只需将调用第三方服务
- 如果是,请立即返回结果
- 如果否,则执行对第三方服务的外部请求,处理请求响应,缓存结果,然后返回
如果有人能帮我找到解决方案,我将不胜感激。只需将调用第三方服务的函数包装到中即可 实现GenServer行为的这个过程将免费维护队列;检察官办公室就行了
随后的请求将被放入进程邮箱,直到此请求完成,因此以下所有请求都将命中缓存。只需将调用第三方服务的函数包装到 实现GenServer行为的这个过程将免费维护队列;检察官办公室就行了 随后的请求将被放入进程邮箱,直到此请求完成,因此以下所有请求都将命中缓存