Буферное приложение с использованием twisted / asyncio - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть простое приложение, которое получает данные и должно отправлять их в другую службу партиями.

Как я могу реализовать это с помощью Twisted или Asyncio?

В настоящее время у меня есть следующий код с использованием витой:

from twisted.internet import protocol, reactor, endpoints
from twisted.protocols import basic


class FirehoseProtocol(basic.LineReceiver):
    def __init__(self):
        self.data = []

    def lineReceived(self, line):
        self.data.append(line)

    def push_to_firehose(self):
        pass  # TODO


class EchoFactory(protocol.ServerFactory):
    protocol = FirehoseProtocol


endpoints.serverFromString(reactor, "tcp:5001").listen(EchoFactory())

reactor.run()

1 Ответ

0 голосов
/ 25 апреля 2018

Вы не сказали, что определяет партию. Если мы предположим, что количество строк определяет пакет:

def lineReceived(self, line):
    self.data.append(line)
    if len(self.data) == batch_size:
        self.push_to_firehose()
...