Как я могу вызвать две асинхронные функции и оставаться активными одновременноPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Как я могу вызвать две асинхронные функции и оставаться активными одновременно

Сообщение Гость »


Я хочу, чтобы эти две функции new_message_checker(Friend) и Interacting() вызывались и оставались активными одновременно, не дожидаясь завершения друг друга, чтобы сделать получение и отправку сообщений из Facebook гибкими

async def new_message_checker(friend): new_message_checker.old_msgs=[] пока правда: WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@style="--mwp-reply-background-color: var(--comment-footer-background); -- mwp-message-list-profile-start-padding: 16px; --mw-blockquote-border-start-color: var(--placeholder-text);"]'))) спать(2) messages = driver.find_elements(By.XPATH, '//*[@style="--mwp-reply-background-color: var(--comment-footer-background); --mwp-message-list-profile- start-padding: 16px; --mw-blockquote-border-start-color: var(--placeholder-text);"]') message_texts = [] для сообщения в сообщениях: print('найдено текущее сообщение') message_texts.append(get_display(arabic_reshaper.reshape(message.text))) print('new_msg_checker запущен') new_msgs = [] для сообщения в message_texts: если сообщения нет в new_message_checker.old_msgs: new_msgs.append(мсг) если новый_msgs: для new_msg в new_msgs: await conv.send_message(f'**{friend}:**' + str(new_msg)) new_message_checker.old_msgs = текст_сообщения асинхронное взаимодействие по определению(): пока правда: msg_dyali= (ожидайте conv.get_response(timeout=7200)).текст if (command_msg3 или command_msg1 или command_msg2) != msg_dyali.lower() : пытаться: driver.find_element(By.XPATH,'//*[@class="xat24cr xdj266r"]').send_keys(msg_dyali,Keys.RETURN) кроме исключения как e: await conv.send_message('**bot**: похоже, возникла небольшая путаница с веб-сайтом, и вам не удалось отправить ваше сообщение 🙄-, все в порядке, отправьте сообщение еще раз ') print(f' ошибка произошла, когда он пытался отправить сообщение {e}') elif msg_dyali.lower() == command_msg2: timestamp = datetime.now().strftime("%Y%m%d%H%M%S") screenshot_filename = f"screenshot_{timestamp}.png" путь_скриншота = f"{driver_captur_path}\\{имя_файла_скриншота}" # Сохраняем скриншот как файл изображения= driver.save_screenshot(screenshot_path) # Отправьте сохраненный файл изображения дождитесь conv.send_file( путь_скриншота, caption='добро пожаловать 🙃') elif msg_dyali.lower() == command_msg1: await conv.send_message('**бот**: окей, мой друг') возвращение и ожидание get_the_friend() elif msg_dyali.lower() ==command_msg3: await conv.send_message('**bot**: ок, друг, если возникнут какие-либо проблемы, пожалуйста, свяжитесь с моим владельцем (https://t.me/si_aymane)') спать(1) await conv.send_message('нажмите /start, если хотите снова войти в систему') драйвер.закрыть() print('закрытие аккаунта') асинхронная защита krk(khra): '''t1 = Thread(target=await new_message_checker(khra)) t2 = Поток (цель = ожидание взаимодействия) t1.start() t2.start() t1.join() t2.join()''' ожидайте asyncio.gather(new_message_checker(khra),interacting()) Я пытался использовать потоки и задачи и запустить сбор, но ни один из них не работает как исключение
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»