Téléthon envoyer des messages dans la liste de manière asynchrone

0

La question

Désolé pour toute l'anglais cassé...

Donc, en gros, j'ai une liste contenant des messages et de leurs destins:

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

Ce que je veux, c'est d'utiliser un: async for msg in messages cependant, ma liste, évidemment, n'est pas en mode asynchrone itérable (je suis en utilisant sqlite3) comment puis-je convertir de manière asynchrone itérable liste?

1

La meilleure réponse

0

Vous n'avez pas besoin "de manière asynchrone itérable listes". Vous pouvez simplement effectuer une itération normalement:

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

Si vous avez vraiment besoin d'un "async itérable liste", vous pouvez l'envelopper comme si, toutefois noter que ce n'est probablement très inutile (et il exige aussi une récente version de 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 - Merci! 2 - je suis en utilisant un: @client.on(events.NewMessage) donc, je peux envoyer et recevoir des messages en même temps, mais je suis en train de faire d'eux de ne pas se bloquer les uns les autres de sorte que la totalité de la chose à ne pas arrêter de travailler. 3 - je pense que je vais donner un meilleur regard sur les exemples.
Joao Pedro Lourenco Affonso

Par défaut, un nouveau asyncio la tâche est généré pour chaque mise à jour, donc ils n'ont pas l'habitude de se bloquer les uns les autres. Seul problème se produit si vous utilisez le blocage des méthodes (comme time.sleep au lieu de asyncio.sleep).
Lonami

Ahh, merci beaucoup! J'ai fini par résoudre le problème comme vous l'avez suggéré plus tôt, mais c'est toujours utile!
Joao Pedro Lourenco Affonso

Dans d'autres langues

Cette page est dans d'autres langues

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