Telethon posílat zprávy v seznamu v asynchronním způsobem

0

Otázka

Omlouvám se za případné lámanou angličtinou...

Takže, v podstatě, mám seznam obsahující zprávy a jejich osudy:

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

To, co chci, je chcete-li použít: async for msg in messages nicméně, můj seznam, samozřejmě, není asynchronně iterable (jsem sqlite3) jak lze převést to do asynchronně iterable seznam?

1

Nejlepší odpověď

0

Nemusíte "asynchronně iterable seznamy". Můžete jednoduše iterovat obvykle:

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

Pokud budete opravdu potřebovat "asynchronní iterable seznam", můžete zabalit to jako tak, nicméně poznámka je to asi hodně zbytečné (a to také vyžaduje nejnovější Python verze):

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 - Díky!!! 2 - jsem pomocí: @client.on(events.NewMessage) takže můžu posílat a přijímat zprávy ve stejnou dobu, ale snažím se jim blokovat navzájem, takže celá věc dont přestat pracovat. 3 - myslím, že bude lepší se podívat na příklady.
Joao Pedro Lourenco Affonso

Ve výchozím nastavení, nový asyncio úkolem je zrozen pro každé aktualizaci, takže se to nebude blokovat navzájem. Jediný problém nastane, pokud používáte blokování metody (jako time.sleep místo asyncio.sleep).
Lonami

Ach, děkuji moc!!! Nakonec jsem řešení problému, jak jsi to navrhoval dříve, ale to ještě užitečné!
Joao Pedro Lourenco Affonso

V jiných jazycích

Tato stránka je v jiných jazycích

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