def end_service_query(self, gid, query): # get all in list results = self.rc.lrange(S1.query_list_out(query), 0, -1) if not results: return None received = [] # check all results for the specified gid mask = '{0}:'.format(gid) for result in results: if result.startswith(mask): self.rc.lrem(S1.query_list_out(query), result) # filter out empty results received.append(result[len(mask):]) return [r for r in received if r] if len(received) else None
def begin_service_query(self, gid, query): self.list_push(S1.query_list_in(query), gid) self.pubsub.broadcast_command(S1.poller_channel_name('all'), query, S1.query_list_in(query), S1.query_list_out(query))