добавление кортежа значений в список потребительских данных kafka - PullRequest
0 голосов
/ 04 марта 2020

У меня есть потребитель kafka, который потребляет 5000 данных в секунду. Я получаю данные производителя в этом формате

producer sent data  ['UUTO9QJ', (14, 77, 'bike', "{'lat': 14, 'long': 77, 'elevation': 900, 
'bearing': 67, 'device': 'bike', 'batt_temp': 99, 'batt_voltage': 11.98, 'type': 'v1', 
'device_id': 'JHVJ5HGJD'}")]

У меня есть следующий код:

@kafkaBus.handle('topic')
def logic_of_data(msg):
    # kafkaBus = kafkaBus.run()
    print(f" Consumer recivied  data  {msg}")
    # print(ConsumerRecord[7])
    l = msg.value
    print(l[0])# l[0] holds this values UUTO9QJ
    val = tuple(l[1])  # holds this value (13, 77, 'bike', "{'lat': 13, 'long': 77, 'elevation': 
    # 900, 'bearing': 67, 'device': 'bike', 'batt_temp': 99, 'batt_voltage': 11.98, 'type': 'v1', 
    # 'device_id': 'JHVJ5HGJD'}")
    print(val, type(val))
    datalist.append(val)
    print(datalist,len(datalist))
datalist = []
tablefields = ['device_id', 'latitude', 'longitude', 'jsonval'] 

if len(datalist) == 5000:
    print("Threshold reached")
    if val := checktableExists(cur, conn, l[0]):
        print("started procrssing")
        Insertval(cur, l[0], tablefields, datalist, conn)
        del datalist[:]
    else:
        print("create new table")
        createtable(cur, conn, l[0])
        Insertval(cur, l[0], tablefields, datalist, conn)
        del datalist[:]

значение пока 3 записи не будут добавлены правильно на момент печати выписки (datalist, len (datalist))

[(12, 77, 'bike', "{'lat': 12, 'long': 77, 'elevation': 900, 'bearing': 67, 'device': 
'bike', 'batt_temp': 99, 'batt_voltage': 11.98, 'type': 'v1', 'device_id': 'JHVJ5HGJD'}"), 
(13, 77, 'bike', "{'lat': 13, 'long': 77, 'elevation': 900, 'bearing': 67, 'device': 'bike', 
'batt_temp': 99, 'batt_voltage': 11.98, 'type': 'v1', 'device_id': 'JHVJ5HGJD'}"), (14, 77, 
'bike', "{'lat': 14, 'long': 77, 'elevation': 900, 'bearing': 67, 'device': 'bike', 
'batt_temp': 99, 'batt_voltage': 11.98, 'type': 'v1', 'device_id': 'JHVJ5HGJD'}")] 
 3

После этого счет становится 1

[(15, 77, 'bike', "{'lat': 15, 'long': 77, 'elevation': 900, 'bearing': 67, 'device': 
'bike', 'batt_temp': 99, 'batt_voltage': 11.98, 'type': 'v1', 'device_id': 'JHVJ5HGJD'}")] 1

Я хочу что-то, что дает список с 5000 кортежей значения l [1] в нем. Как это можно сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...