Используйте команду set-message-ttl и укажите имя пространства имен (по умолчанию public / default для постоянной темы) и время.
bin/pulsar-admin namespaces set-message-ttl public/default --messageTTL 120
Пример кода производителя и потребителя для достижения ttl (клиент Python)
import pulsar
client = pulsar.Client('pulsar://localhost:6650')
producer = client.create_producer('my-topic-reader1')
producer.send(('Hello-Pulsar1').encode('utf-8'))
producer.send(('Hello-Pulsar2').encode('utf-8'))
producer.send(('Hello-Pulsar3').encode('utf-8'))
producer.close()
client.close()
Вы можете отправить несколько сообщений, используя метод отправки.Название темы должно быть одинаковым в обоих классах.
import pulsar
client = pulsar.Client('pulsar://localhost:6650')
consumer = client.subscribe("my-topic-reader1", "my-subscription")
//receive all the messages.whatever we publish
msg = consumer.receive()
print("Received message '{}' id='{}'".format(msg.data(), msg.message_id()))
//Here we are not acknowledge all the messages.
//close the consumer and client
consumer.close()
client.close()
В течение 120 секунд мы снова открываем клиента и потребителя и пытаемся прочитать одинаковые сообщения, что не публикуется. Снова закрываем клиента и потребителя.
Позже (через 120 секунд), снова мы откроем клиента и потребителя, затем попытаемся получить сообщение.Но это не должно прийти.В этом состоянии вы достигаете Время жить.