Changing the Filter on a Subscription

AMPS allows you to update parameters, such as the content filter, on a subscription. When you replace a filter on the subscription, AMPS immediately begins sending only messages that match the updated filter. Notice that if the subscription was entered with a command that includes a SOW query, using the replace option can re-issue the SOW query (as described in the AMPS User Guide).

To update the filter on a subscription, you create a subscribe command. You set the SubscriptionId provided on the Command to the identifier of the existing subscription and include the replace option on the Command.

When you send the Command, AMPS atomically replaces the filter and sends messages that match the updated filter from that point forward.


sub_cmd = AMPS.Command("sow_and_subscribe") \
           .set_topic("orders-sow")      \
           .set_sub_id("A42")            \
           .set_filter("/details/items/description LIKE 'puppy'")


client.execute_async(sub_cmd, MyHandler)


# Elsewhere in the program...

replace_cmd = AMPS.Command("sow_and_subscribe") \
               .set_topic("orders-sow")      \
               .set_sub_id("A42")            \
               .set_filter("/details/items/description LIKE 'kitten'") \
               .set_options("replace")

client.execute_async(replace_cmd, MyHandler)

Last updated