Topic

class Topic(service_name, name, context)[source]

Bases: PartitionSpecificProxy[BlockingTopic], Generic[MessageType]

Hazelcast provides distribution mechanism for publishing messages that are delivered to multiple subscribers, which is also known as a publish/subscribe (pub/sub) messaging model.

Publish and subscriptions are cluster-wide. When a member subscribes for a topic, it is actually registering for messages published by any member in the cluster, including the new members joined after you added the listener.

Messages are ordered, meaning that listeners(subscribers) will process the messages in the order they are actually published.

add_listener(on_message: Callable[[TopicMessage[MessageType]], None] = None) Future[str][source]

Subscribes to this topic.

When someone publishes a message on this topic, on_message function is called if provided.

Parameters:

on_message – Function to be called when a message is published.

Returns:

A registration id which is used as a key to remove the listener.

publish(message: MessageType) Future[None][source]

Publishes the message to all subscribers of this topic.

Parameters:

message – The message to be published.

publish_all(messages: Sequence[MessageType]) Future[None][source]

Publishes the messages to all subscribers of this topic.

Parameters:

messages – The messages to be published.

remove_listener(registration_id: str) Future[bool][source]

Stops receiving messages for the given message listener.

If the given listener already removed, this method does nothing.

Parameters:

registration_id – Registration id of the listener to be removed.

Returns:

True if the listener is removed, False otherwise.

blocking() BlockingTopic[MessageType][source]

Returns a version of this proxy with only blocking method calls.

class BlockingTopic(wrapped: Topic[MessageType])[source]

Bases: Topic[MessageType]

name
service_name
add_listener(on_message: Callable[[TopicMessage[MessageType]], None] = None) str[source]

Subscribes to this topic.

When someone publishes a message on this topic, on_message function is called if provided.

Parameters:

on_message – Function to be called when a message is published.

Returns:

A registration id which is used as a key to remove the listener.

publish(message: MessageType) None[source]

Publishes the message to all subscribers of this topic.

Parameters:

message – The message to be published.

publish_all(messages: Sequence[MessageType]) None[source]

Publishes the messages to all subscribers of this topic.

Parameters:

messages – The messages to be published.

remove_listener(registration_id: str) bool[source]

Stops receiving messages for the given message listener.

If the given listener already removed, this method does nothing.

Parameters:

registration_id – Registration id of the listener to be removed.

Returns:

True if the listener is removed, False otherwise.

destroy() bool[source]

Destroys this proxy.

Returns:

True if this proxy is destroyed successfully, False otherwise.

blocking() BlockingTopic[MessageType][source]

Returns a version of this proxy with only blocking method calls.