Skip to content

Commit e1d147e

Browse files
committed
PROTON-2890: [Python examples] Simple recv now deduplicates more accurately
This does use an ever expanding set, so this is not suitable for production use! For production use maybe the ids in the deduplication cache could be removed after a certain number of new messages have been received.
1 parent e473920 commit e1d147e

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

python/examples/simple_recv.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,20 @@ def __init__(self, url, count):
2929
self.url = url
3030
self.expected = count
3131
self.received = 0
32+
self.dedup_ids = set()
3233

3334
def on_start(self, event):
3435
event.container.create_receiver(self.url)
3536

3637
def on_message(self, event):
37-
if event.message.id and event.message.id < self.received:
38+
message = event.message
39+
if message.id in self.dedup_ids:
3840
# ignore duplicate message
41+
print(f"duplicate message ignored {message.id}")
3942
return
43+
self.dedup_ids.add(message.id)
4044
if self.expected == 0 or self.received < self.expected:
41-
print(event.message.body)
45+
print(f"{message}")
4246
self.received += 1
4347
if self.received == self.expected:
4448
event.receiver.close()

0 commit comments

Comments
 (0)