Telethon में संदेश भेजने के लिए सूची में अतुल्यकालिक तरीके से

0

सवाल

क्षमा करें के लिए किसी भी टूटी अंग्रेजी...

तो, असल में, मैं एक सूची से युक्त संदेशों और उनकी नियति:

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

मैं चाहता हूँ कि क्या है का उपयोग करने के लिए: async for msg in messages हालांकि, मेरी सूची में, जाहिर है, नहीं है asynchronously iterable (मैं का उपयोग कर रहा हूँ sqlite3) कैसे कर सकते हैं मैं इसे बदलने के लिए एक asynchronously iterable सूची?

1

सबसे अच्छा जवाब

0

आप की जरूरत नहीं है "asynchronously iterable सूची". आप कर सकते हैं बस पुनरावृति सामान्य रूप से:

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

यदि आप वास्तव में जरूरत है एक "async iterable सूची", आप लपेट कर सकते हैं इसलिए, हालांकि, ध्यान दें यह शायद अनावश्यक है (और यह भी की आवश्यकता है हाल ही में एक अजगर संस्करण):

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 - धन्यवाद! 2 - मैं एक का उपयोग: @client.on(events.NewMessage) तो मैं कर सकते हैं संदेश भेजने और प्राप्त एक ही समय में, लेकिन मैं कोशिश कर रहा हूँ बनाने के लिए उन्हें ब्लॉक नहीं एक दूसरे को तो पूरी बात न रोक काम कर रहा है । 3 - मुझे लगता है कि मैं दे देंगे एक बेहतर उदाहरण को देखो.
Joao Pedro Lourenco Affonso

डिफ़ॉल्ट रूप से, एक नया asyncio कार्य पैदा की है में से प्रत्येक के लिए अद्यतन है, इसलिए वे अभ्यस्त नहीं हैं ब्लॉक एक दूसरे को. केवल समस्या होती है यदि आप का उपयोग अवरुद्ध तरीकों (जैसे time.sleep के बजाय asyncio.sleep).
Lonami

आह, आपको बहुत बहुत धन्यवाद! मैं समाप्त समस्या को सुलझाने के रूप में आप का सुझाव दिया इससे पहले, लेकिन यह अभी भी उपयोगी है!
Joao Pedro Lourenco Affonso

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

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