需要从接收来自其他进程的许多传入消息的进程实现同步呼叫。区分的问题 - 当呼叫回复到呼叫时。我是否需要产生额外的进程来从队列中提取消息到缓冲区,而不会遇到返回消息,然后将其发送到主进程,并在其他人接受之后。来自进程的同步呼叫与许多传入消息
-4
A
回答
0
诀窍是使用引用作为令牌用于复制:
replicate() ->
{ok, Token} = db:ask_replicate(...),
receive
{replication_completed, Token} ->
ok
end
其中Token
与对make_ref()
一个呼叫建立。由于没有其他信息会匹配Token
,您是安全的。其他邮件将被放置在邮箱中供以后审查。
但是,上述解决方案并未将进程崩溃考虑在内。您还需要在数据库服务器上安装监视器。让模式正确的最简单方法是让介体为gen_server
。或者,您可以阅读LearnYouSomeErlang中的章节:http://learnyousomeerlang.com/what-is-otp#the-basic-server查看kitty_server
中的同步呼叫。
相关问题
- 1. jQuery同步呼叫
- 2. Nservicebus同步呼叫
- 3. 不允许传入呼叫Lync Api或禁用传入呼叫的声音
- 4. 取消异步呼叫
- 5. 星号外呼和来自不同域的入站呼叫
- 6. std :: future.get()多个呼叫(来自不同的线程)
- 7. Ajax:与一次大型呼叫相比,许多(较小)呼叫
- 8. 来自CDR的同时呼叫
- 9. 来自不同类Android的呼叫Asynctask
- 10. 使nodejs同步呼叫
- 11. DBus同步呼叫超时
- 12. AJAX来自多个选择的呼叫
- 13. 来自SIP的多个呼叫
- 14. 与nservicebus同步的消息
- 15. 处理来自UdpClient.BeginReceive()的传入消息()
- 16. 来自iOS应用程序的呼叫
- 17. c呼叫同步是否与命令同步一样?
- 18. 来自MTA的STA呼叫
- 19. 进行同步应用程序到电话呼叫(Android)
- 20. 取消优异的异步呼叫?
- 21. 呼叫应答器的异步呼叫
- 22. 等待异步在Akka处理下一条消息之前的未来呼叫
- 23. 呼叫来电呼叫
- 24. Java RMI:确定来自Callee的呼叫者进程
- 25. 保护来自同一应用程序的ReST呼叫
- 26. 基于来自呼叫
- 27. 如何使用同步呼叫GWT或等待呼叫完成
- 28. Chrome扩展的消息传递,当XHR呼叫的jQuery
- 29. akka/actor模型中的同步呼叫
- 30. magento中的同步jquery ajax呼叫
我不知道我理解你的问题。 –
假设我已经正确地理解了你的问题 - 但我怀疑它 - 你有几个进程向单个服务器发送随机消息,这需要收集(也许处理)消息,直到它收到一条特殊消息,在这种情况下,它会回复主叫方。你是这个意思吗? –
我的进程是客户端和分布式db节点之间的中介。最终clent可以要求节点之间的复制。在复制期间,不能处理任何对db的请求,它们必须在复制完成后进行缓冲和处理。复制完成触发器发送消息给介体,但在介体队列中有很多消息。调解员如何知道他收到有关复制的特殊消息? – Yola