Нужна помощь с синхронностью работы программы

Есть вот такой обработчик

async def cmena(messege: Message):
db = Database(os.getenv("DATABASE_NAME"))
user = db.select_user_id(messege.from_user.id)
await bot.send_message("-1001974191481", f"{user[1]}\n"
                                                     f"что-то")
await messege.answer(done(user[1]))

и исполняемый код

 def done(name):
 gecko_driver_path = (r"C:\report\geckodriver.exe")
 firefox_binary_path = r'C:\Program Files\Mozilla Firefox\firefox.exe'
 firefox_options = Options()
 firefox_options.binary_location = firefox_binary_path
 firefox_service = FirefoxService(executable_path=gecko_driver_path)
 driver = webdriver.Firefox(service=firefox_service, options=firefox_options)
 driver.get("https://сайт.com/")

 element_xpath = "/html/body/div/div/div/main/div/div/div/div/div/div/form/div[1]/div/div/div/div/div/div/div[1]/div[1]"#нажатие телефон
 element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, element_xpath)))
 element.click()

 keyboard.write('1221564564')
 time.sleep(1.5)

 element_xpath = "/html/body/div/div/div/main/div/div/div/div/div/div/form/div[2]/button/span"
 element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, element_xpath)))#нажатие войти
 element.click()

 element_xpath = "/html/body/div/div/div[1]/div[3]/nav/div[1]/div/a[2]/div[2]/div/span"
 element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, element_xpath)))  # включяем заявки 36
 element.click()
 element_xpath = "/html/body/div/div/div[1]/div[3]/nav/div[1]/div/a[1]/div[2]/div/span"
 element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, element_xpath)))
 element.click()

 element_xpath = "/html/body/div/div/div/div[3]/main/div/div/div/div/div[1]/div[2]/div/button/span/i"
 element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, element_xpath)))#нажатие отклики
 element.click()


 time.sleep(3.5)
 try:
  for i in range(4):
   element_xpath = f"/html/body/div/div/div/div[3]/main/div/div/div/div/div[4]/div[{i+1}]/div[2]/div[2]/div[4]/button/span/i"
   element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, element_xpath)))  #раскрываем
   element.click()
   try:
    for a in range(3):
     element_xpath = f"/html/body/div/div/div/div[3]/main/div/div/div/div/div[4]/div[{i+1}]/div[2]/div[{a+3}]/div[2]/div[1]/a"
     element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, element_xpath)))#читаем
     element_text = element.text
     print(element_text)
     if(element_text == name):
      element_xpath = f"/html/body/div/div/div/div[3]/main/div/div/div/div/div[4]/div[{i+1}]/div[2]/div[{a+3}]/div[2]/div[5]/button/span"
      element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, element_xpath)))  # подтверждаем если верно
      element.click()
      element_xpath = f"/html/body/div/div/div[3]/div/div/div[3]/div/button[1]/span/span"
      element = WebDriverWait(driver, 10).until(
       EC.presence_of_element_located((By.XPATH, element_xpath)))  # подтверждаем если верно
      element.click()
      driver.quit()
      print("Подтверди что то")
      return("Подтверди что то")
   except:
    print("В боке нет фамилии")
 except:
  driver.quit()
  print("Возникла ошибка напишите в группу")
  return("Возникла ошибка напишите в группу")

 driver.quit()
 print("что то не обнаружена")
 return("что то не обнаружена")

Этот код откликается на команду с бота и подтверждать в системе, но есть проблема если сразу несколько человек напишут ему то код будет работать не так ка надо.Нужна помощь с тем чтобы это могло работать желательно синхронно, работало правильно если будут несколько человек одновременно.Ну или чтобы это вообще работало правильно к примеру по порядку он им отвечал(а то если сейчас несколько человек ждут отклика то бот начинает обрабатывать обоих и происходит ошибка)ну типа есть ответ бот стопорится и обрабатывает по 1 человеку


Ответы (1 шт):

Автор решения: adeltut

Спасибо всем за помощь, я решил свою проблему с помощью библиотеки queue и сделал очередь заявок

→ Ссылка