Java – Problem mit kritischer Zeit bei der Verarbeitung der Nachrichtenwarteschlange
phpcn_u1582
phpcn_u1582 2017-05-17 10:08:07
0
2
546

Empfangen Sie nun Nachrichten aus der Nachrichtenwarteschlange und schreiben Sie sie dann in eine Datei. Schreiben Sie jede Stunde einen, was einem Batch-Schreibvorgang entspricht. Aber jedes Mal, wenn eine neue Datei geschrieben wird, gibt es am Anfang einige Daten, die zur vorherigen Stunde gehören sollten, und der Nachrichtentext hat Zeit. So stellen Sie sicher, dass alle Nachrichten ausschließlich in Ihre eigenen Dateien geschrieben werden. Was mir jetzt einfällt, ist, die in Stapel geschriebenen Puffer nach Stunden aufzuteilen, Map<hour,buffer>, ein Puffer entspricht einer Stunde und der Dateiname wird basierend auf dem Stundenfeld generiert, das dem Puffer entspricht Die Daten in jedem Puffer gehören zu sich selbst. Gibt es einen anderen besseren Weg?

phpcn_u1582
phpcn_u1582

Antworte allen(2)
黄舟

文件在小时整点生成,每个消息都带上各自的时间戳,匹配写

我想大声告诉你

感觉你这个问题可能有以下几个原因造成的:

  1. producer重复发送了消息

  2. mq重复发送了消息给consumer

  3. 前一小时consumer没有告知mq已经消费消息,导致后一个小时mq又发送了消息

参考资料:

  1. duplicated-messages-on-activemq

  2. avoiding-duplicated-messages-on-jms-activemq

  3. duplicate-detection

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!