Telethon odosielanie správ v zozname v asynchrónnom spôsobom

0

Otázka

Ospravedlňujeme sa za akékoľvek nefunkčné angličtine...

Takže, v podstate, mám zoznam, ktorý obsahuje správy a ich osudmi:

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

To, čo chcem, je použiť: async for msg in messages no môj zoznam, samozrejme, nie je asynchrónne iterable (ja používam sqlite3) ako môžem previesť do asynchrónne iterable zoznam?

1

Najlepšiu odpoveď

0

Nemusíte "asynchrónne iterable zoznamy". Stačí opakovať bežne:

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

Ak budete naozaj potrebovať, "async iterable zoznam", môžete zabaliť to tak ako tak, ale poznámka: toto je pravdepodobne veľmi zbytočné (a tiež sa vyžaduje posledných Python verzia):

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 - Vďaka! 2 - ja som pomocou: @client.on(events.NewMessage) tak som sa mohli odosielať a prijímať správy v rovnakom čase, ale snažím sa, aby ich nezakrývajte navzájom, takže celá vec dont stop pracuje. 3 - myslím, že bude dať lepšie pozrieť na príklady.
Joao Pedro Lourenco Affonso

V predvolenom nastavení, nové asyncio úlohou je splodil pre každú aktualizáciu, takže sa nemusíte nebude blokovať navzájom. Jediný problém nastane, ak používate na blokovanie metódy (ako time.sleep namiesto asyncio.sleep).
Lonami

Ach, ďakujem vám veľmi pekne! Skončil som vyriešiť problém, ako si navrhol skôr, ale to stále užitočné!
Joao Pedro Lourenco Affonso

V iných jazykoch

Táto stránka je v iných jazykoch

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