[uanog] Parallel processing - which one to use?

Vladimir Sharun vladimir.sharun at ukr.net
Wed Jan 13 11:26:12 EET 2021


Привет,


12 січня 2021, 22:47:34, від "Volodymyr Litovka" <doka at xlit.one>:

Привет,
On 12.01.2021 19:12, Vladimir Sharun wrote:

Постановка задачи требует уточнений. Надо понимать:
на каждый UDP пакет надо принимать решение, основываясь на критериях из кэша/апдейтов_в_пуше ? что это ?
каждый пакет - это текстовая строка, состоящая из 4-х полей, по одному из которых делается if и есличо, то три других проходят проверки на валидность и, дополняясь информацией из local cache, уходят в output
что-то типа
while True:
    data, address = lsock.recvfrom(1024)
    try:
        a, b, c, d = [i.strip()) for i in data.decode().split(',)]
        a = int(a)
        if a == 255:
           if not b.isnumeric():
               continue
           va = memcached.get(b)
           if va:
               IPAddress(c)
               d = int(d)
               # we're here because no exception above
               data = b.decode() + socket.inet_aton(c) + d.from_bytes(2, 'big) + va
               for r in remotes:
                   rsock.send(data, r)	# output UDP
        elif a in [3, 5, 7]:
           # smth else
           ...
    except:
        pass

memcache - это TCP, очень очень надо контролировать, чтобы у тебя не был каждый запрос - создание класса, коннект, прочитали, дисконнект. Т.е. это должен быть какой-то pipeline, в котором постоянно открыт коннект к мемкешу. Создать класс, коннект-прочитали-дисконнект - это ок 50-60мкс на лупбеке.

Конструкторы и деструкторы - это тоже небесплатно кстати. Т.е. обслуживание ООП - это не халява.


Да, и inram cache - это тоже штука в себе.
а какая разумная альтернатива?

Тут не в альтернативе, а в реализации. Мемкеш например может заглючить (не теоретически, а практически) и что ты тогда будешь делать ?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.uanog.kiev.ua/pipermail/uanog/attachments/20210113/62b75224/attachment-0001.html>


More information about the uanog mailing list