Telethon wysyła wiadomości w liście asynchronicznym sposobem

0

Pytanie

Przepraszam za każdy złamany człowiek angielski...

Tak więc, w zasadzie, mam listę, zawierającą wiadomości i ich losy:

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

Że chcę to wykorzystać: async for msg in messages jednak moja lista, oczywiście, nie jest asynchronicznie powtarzalny (używam sqlite3) w jaki sposób mogę przekształcić go w sposób asynchroniczny, powtarzalny lista?

1

Najlepsza odpowiedź

0

Nie potrzebujesz "asynchronicznie powtarzające listy". Można po prostu wykonać zwykłą iteracji:

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

Jeśli ci naprawdę potrzebny "asynchroniczny итерируемый lista", można owinąć go tak, należy jednak pamiętać, że jest to prawdopodobnie bardzo opcjonalnie (i do tego wymagane jest również najnowsza wersja 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 - Dzięki! 2 - używam: @client.on(events.NewMessage) w ten sposób mogę wysyłać i odbierać wiadomości jednocześnie, ale staram się robić tak, aby nie blokowały się nawzajem, żeby to wszystko przestało działać. 3 - myślę, że lepiej omówi przykłady.
Joao Pedro Lourenco Affonso

Domyślnie nowy asyncio zadanie jest tworzony dla każdej aktualizacji, więc nie będą blokować się nawzajem. Problem występuje tylko w przypadku, jeśli używasz metody blokady (np. time.sleep zamiast asyncio.sleep).
Lonami

Ach, dziękuję bardzo! W końcu zdecydowałem się problem, jak sugerowali wcześniej, ale to i tak przydatne!
Joao Pedro Lourenco Affonso

W innych językach

Ta strona jest w innych językach

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