Chris
November 2, 2023, 7:50am
1
I found that solace PubSub+ 1.6.0 support cache
But I follow this
step to do cache request
I can not receive the cache message from direct_receiver.receive_async(MessageHandlerExample())
but I can use DirectMessageReceiver. add_subscription to get message(CacheStatus.LIVE).
and I also develope C# code it allowed call SendCacheRequest to receive cacehe message.
any one use python to call cache successlly?
Thanks
marc
November 2, 2023, 1:08pm
2
Hi @Chris ,
We actually just added a sample in solace-samples-python to use PS+ Cache a few days ago. Can you take a look and see if this helps you out!
"""
This module contains example snippets on how to request cached data from a cache, through a direct receiver. These
examples assume that the direct receiver has already been started, and that it was created from a messaging service
which has already been connected.
"""
from solace.messaging.utils.cache_request_outcome_listener import CacheRequestOutcomeListener
from solace.messaging.utils.cache_request_outcome import CacheRequestOutcome
from solace.messaging.resources.topic_subscription import TopicSubscription
from solace.messaging.resources.cached_message_subscription_request import CachedMessageSubscriptionRequest
class MyCacheRequestOutcomeListener(CacheRequestOutcomeListener):
def on_completion(result: CacheRequestOutcome, correlation_id: int, e: Exception):
print("Completed!")
class HowToUseCachedMessageSubscriptionRequests:
"""
Sampler for making cache requests. Usage of cache subscriptions require
configuration and hosting of PubSub+ Cache application.
"""
This file has been truncated. show original
Chris
November 3, 2023, 1:56am
3
Hi Marc,
I do try that how_to_request_cached_data.py but it still can’t receive cache data.
what detail settings should I check out?
my python code flow is
1.MessagingService.connect()
2.message_receiver = MessagingService.create_direct_message_receiver_builder().build()
3.message_receiver.start()
4.message_receiver.receive_async(MyMessageHandler())
call cache request
5.HowToUseCachedMessageSubscriptionRequests().create_subscription_request_to_receive_latest_message(message_receiver , “subexpress”, “cache name”, 3000)
or create_subscription_request_to_receive_cached_and_live_messages,
or create_cached_subscription_with_more_options,
or create_subscription_to_receiver_only_cached_messages,
6.do another message_receiver.add_subscription
is it correct?
marc
November 3, 2023, 3:30pm
4
Conversation is continuing here: