streamnative / pulsarctl

a CLI for Apache Pulsar written in Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Confusing subscriptions expire docs

worekleszczy opened this issue · comments

Hello, first of all I really like and enjoy using this tool 🙂

Some time ago I was trying to expire a couple of messaged from pulsar using pulsarctl subscriptions expire. I checked the docs:

ExpireMessages flags:
  -t, --expire-time int   Expire messages older than time in seconds
  -a, --all               Expire all messages

So I executed pulsarctl subscriptions expire -t 5 ... and expected that all messages older than 5 second will be expired, but after some poking around I realised that only one was.

I think that this is a little bit misleading - I though that -t will expire ALL messages older than int but it turned out that if -a is not specified it expire only a single message - my thinking was -a expired ALL messaged no matter what time they were published.

Do you think it would be worth reflecting that behaviour more clearly in the docs?

There have two uses:

  1. pulsarctl subscription expire --expire-time (expire-time) (topic-name) (subscription-name)
    Expire messages that older than given expire time (in seconds) for a subscription (subscription-name) under a topic
  2. pulsarctl subscriptions expire --all --expire-time (expire-time) (topic-name)
    Expire message that older than given expire time (in second) for all subscriptions under a topic

@nodece But does it in all cases expire all messages older then expire-time?

Sorry for late response, you are right.

Expires all messages older than given N seconds for all subscriptions of the persistent-topic.