Проблема выполнения асинхронных задач
Есть проблема выполнения асинхронных задач. Python 3.13.3. В функции, которую отправляю на выполнение, должна проводится проверка, что email заполнен, и тогда сообщение не должно отправляться.
Но это не работает. Не понимаю, почему. tasks = [ asyncio.create_task( send_incomplete_contacts_nurture( 30 * 60, "banners/тг баннер 14.png", ( "<b>Обратный отсчёт пошёл</b>n" "Система уже построила путь к твоей цели. Но окно возможностей не вечно.n" "Через 30 мин: система удалит расчёты.n" "Через 1 час: слоты Fast Pass аннулируются." ), ) ), asyncio.create_task( send_incomplete_contacts_nurture( 50 * 60, "banners/10 минут.png", ( "<b>Fast Pass-режим: приоритетная активация</b>n" "<b>Твоя заявка попадает на приоритетную обработку:</b>n" "Персональный Zoom разборn" "План роста с привязкой к твоим цифрамn" "Автоматическая расшифровка с AI и PDF-протоколn" "<i>⏳ Доступен 72 часа — дальше только по индивидуальному запросу.</i>" ), ) ), asyncio.create_task( send_incomplete_contacts_nurture( 55 * 60, "banners/тг баннер 15.png", ( "<b>Система уже запускает обратный отсчёт.</b>n" "Через 5 минут разбор будет уничтожен.n" "<i>Ссылка на PDF исчезнет. Следующая попытка — через 30 дней.</i>" ), ) ), asyncio.create_task(auto_send_pdf(60 * 60)), ] NURTURE_TASKS[user_id] = tasks async def send_incomplete_contacts_nurture(delay_s: int, photo_path: str, text: str): try: await asyncio.sleep(delay_s) cur = session_load(user_id) or {"data": {}} if cur.get("completed"): return if not is_qualified(cur): return phone = cur.get("phone") email = cur.get("email") # Не отправляем дожим, если в БД уже есть ЛЮБОЙ контакт (телефон или email) if phone or email: return await bot.send_message( chat_id, text, reply_markup=_nurture_button("▶ Оставить контакты"), ) except asyncio.CancelledError: return def session_load(user_id: int) -> dict | None: row = DB.execute( "SELECT user_id, chat_id, step, data, completed, phone, email, pdf_path FROM sessions WHERE user_id=?", (user_id,), ).fetchone() if not row: return None return { "user_id": row[0], "chat_id": row[1], "step": row[2], "data": json.loads(row[3] or "{}"), "completed": bool(row[4] or 0), "phone": row[5], "email": row[6], "pdf_path": row[7], }
Источник: ru.stackoverflow.com — ru.stackoverflow.com/questions/1616425/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0-%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B0%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D1%8B%D1%85-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87