让我试着解释一下情况:
我们将要合并一个消息传递系统,它可以是队列或主题(JMS 术语)。
1)Producer/Publisher:有一个服务A。A产生消息并写入一个Queue/Topic
2)Consumer/Subscriber:有一个服务B。B从Queue/Topic异步读取消息。B 然后调用 Web 服务并将消息传递给它。Web 服务需要花费大量时间来处理消息。(此动作不需要实时处理。)
消息代理是 Tibco
我的意图是:不要错过处理来自 A 的任何消息。在稍后的时间点重新处理它,以防处理第一次失败(可能作为批处理)。
问题:
我正在考虑在进行网络服务调用之前将消息写入数据库。如果调用成功,我会将消息标记为已处理。否则失败。后来,在一个 cron 作业中,我将处理所有最初失败的请求。
写入数据库是执行此操作的典型方式吗?