2016-07-23 8 views

Antwort

3

Sie können diese zwei verschiedene Möglichkeiten:

Sie mehrere Anrufe verwenden können, um self.vip.pubsub.subscribe.

Diese Anrufe müssen nach dem Start eines Agenten erfolgen. Wie Amin in seiner Antwort erwähnt, können Sie dies in einer "Onstart" -Methode tun. Diese Methode kann verwendet werden, um Abonnements jederzeit dynamisch zu ändern, nachdem ein Agent gestartet wurde.

@Core.receiver('onstart') 
def my_onstart_method(self, sender, **kwargs): 
    self.vip.pubsub.subscribe(peer='pubsub', prefix="path/to/topic1", callback=self.on_match) 
    self.vip.pubsub.subscribe(peer='pubsub', prefix="path/to/topic2", callback=self.on_match) 

Oder können Sie mehrere Dekorateure auf der gleichen Klasse Methode verwenden:

@PubSub.subscribe('pubsub', 'EnergyManagement/CurrentPrice') 
@PubSub.subscribe('pubsub', 'EnergyManagement/futurePrice') 
def on_match(self, peer, sender, bus, topic, headers, message): 
    pass 
1

Wenn Sie die gleiche Methode verwenden möchten, um mehrere Themen zu abonnieren, können Sie eine alternative Möglichkeit zum Abonnieren verwenden. Sie können dies tun, in Ihrem „onstart“ Methode:

self.vip.pubsub.subscribe(peer='pubsub',prefix=”topic1”,callback=callback_method) 

self.vip.pubsub.subscribe(peer='pubsub',prefix=”topic2”,callback=callback_method)