Conexão persistente em torcido

Eu sou novo no Twisted e tenho uma pergunta. Como posso organizar uma conexão persistente no Twisted? Eu tenho uma fila e cada segundo verifica isso. Se tiver algum - envie no cliente. Não consigo encontrar algo melhor do que chamar dataReceived a cada segundo. Aqui está o código de implementação do protocolo:

class SyncProtocol(protocol.Protocol):
    # ... some code here
    def dataReceived(self, data):
        if(self.orders_queue.has_new_orders()):
            for order in self.orders_queue:
                self.transport.write(str(order))

        reactor.callLater(1, self.dataReceived, data)  # 1 second delay

Funciona como eu preciso, mas tenho certeza de que é uma solução muito ruim. Como posso fazer isso de maneira diferente (flexível e correta)? Obrigado.

P.S. - a idéia principal e o algoritmo: 1. O cliente se conecta ao servidor e aguarda 2. O servidor verifica se há atualizações e envia os dados ao cliente se algo mudar 3. O cliente faz algumas operações e aguarda outros dados

questionAnswers(1)

yourAnswerToTheQuestion