我正在开发一种解决方案,用于查询特定事务的 SOAP Web 服务。一旦检索到,这些事务将被保存在数据库中,然后调用回调 url 将一些数据发送到另一台服务器。您将如何最好地设计解决此问题的方案。我的困惑是是否应该使用 gen_server 或 gen_fsm ,如果是,解决方案的哪个组件去哪里,即如果 gen_server 什么任务去服务器哪个任务去客户端。
问问题
247 次
1 回答
3
想想你的系统中可以并行执行哪些任务。SOAP 查询可以并行完成吗?这有意义吗?是否可以在再次查询 SOAP 时将事务写入数据库?是否应该在事务写入数据库后将数据发送到另一台服务器,还是可以同时完成?
一旦你知道了这些答案,你就可以建立你的管道。一个例子是:
- 一个进程定期查询 SOAP 服务并为每批事务调用一个函数。
- 在这个函数中,启动了两个进程;一种将事务写入数据库,另一种将数据发送到服务器。这些过程是相互独立的。
这只是一个示例,根据您的要求,您可能必须以另一种方式构建事物。
一般来说,这些过程都可以是gen_servers
因为它们都没有任何明确的状态。事实上,这两个工作进程根本不必存在gen_servers
,因为它们只是执行一项任务然后死亡。在这种情况下使用 agen_server
将是矫枉过正。
于 2015-08-26T08:05:16.207 回答