Teledonul trimite mesaje în listă într-o manieră asincronă

0

Problema

Ne pare rău pentru orice engleză stricată...

Deci, practic, am o listă conținând mesaje și destinele lor:

messages = [(id_1, msg_1), (id_2, msg_2), (id_3, msg_3),]

Ceea ce vreau este de a utiliza o: async for msg in messages cu toate acestea, lista mea, evident, nu este asincron iterable (eu sunt, folosind sqlite3) cum pot converti la un asincron iterable lista?

1

Cel mai bun răspuns

0

Nu ai nevoie de "asincron iterable liste". Poți repeta în mod normal:

for (id, msg) in messages:
    # do things...

Dacă ai într-adevăr nevoie de un "async iterable listă", puteți încheia așa, cu toate acestea, rețineți acest lucru este, probabil, foarte inutile (și aceasta necesită, de asemenea, un recent versiunea Python):

async def make_async_iter(lst):
    for item in lst:
        yield item

...

async for item in make_async_list(messages):
    # use item...
2021-11-23 18:48:47

1 - Multumesc! 2 - eu sunt, folosind-o: @client.on(events.NewMessage) ca să pot trimite și primi mesaje în același timp, dar încerc să-i fac să nu blocheze reciproc, astfel încât totul dont a opri de lucru. 3 - cred că vă va oferi o privire mai bine la exemple.
Joao Pedro Lourenco Affonso

În mod implicit, un nou asyncio sarcina este generat pentru fiecare actualizare, astfel încât acestea nu bloca reciproc. Singura problemă apare dacă utilizați metode de blocare (cum ar fi time.sleep în loc de asyncio.sleep).
Lonami

Ahh, vă mulțumesc foarte mult! Am ajuns rezolvarea problemei cum ai sugerat mai devreme, dar acest lucru încă util!
Joao Pedro Lourenco Affonso

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................