Параллельность в работе чат-бота (python)

пишу телеграм-бота на aiogram. При его работе должны выполняться регистрация пользователей на прием и оповещение пользователей о приеме. Регистрация основана на FSM через хендлеры. Оповещение пользователя производится за сутки до приема: происходит 24/7 проверка через базу данных о необходимости отправки уведомления пользователю. Проблема: при исполнении кода работает либо оповещение, либо возможность регистрации, но не все вместе. Мне необходимо, чтобы даже при выполнении регистрации каким-либо пользователем параллельно проверялась необходимость отправки уведомлений другим пользователям. Часть исполняемого кода:

from aiogram import Bot, Dispatcher, executor, types
import logging
import sqlite3 as sq
from aiogram import types
from aiogram.dispatcher.filters import Command
from aiogram.dispatcher.filters import Text
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from register import Registration
from aiogram.dispatcher import FSMContext
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton,\
InlineKeyboardMarkup, InlineKeyboardButton
from datetime import datetime
from config import API_TOKEN
import asyncio

#Блок кода по регистрации

@dp.message_handler(commands=['start'])
async def start_message(message: types.Message):
   # Создание пользовательской клавиатуры для удобства пользования
   greet_kb = ReplyKeyboardMarkup()
   but_1 = KeyboardButton('/reg')
   but_2 = KeyboardButton('/note')
   greet_kb.add(but_1, but_2)
   await message.reply('Добрый день, Вы обратились в салон "Геракл".\n'
                                  'Выберите, что Вам необходимо, из списка', 
   reply_markup=greet_kb)



@dp.message_handler(Command('reg'), state=None)
async def ans_fio(message: types.Message):
   await message.answer('Укажите Ваше ФИО')
   await Registration.Register.set()
   await Registration.next()


#передаем состоянию ФИО
@dp.message_handler(state=Registration.Init)
async def ans_phone(message: types.Message, state: FSMContext):
  fio = message.text
  await state.update_data(fio=fio)
  await message.answer('Укажите Ваш номер телефона для дальнейшей связи. 
    Форма ввода: только цифры, без пробелов')
  await Registration.next()

#Передаем состоянию номер телефона

@dp.message_handler(state=Registration.Phone)
async def ans_finish(message: types.Message, state: FSMContext):
  phone = message.text
  await state.update_data(phone=phone)
  data = await state.get_data()
  ans1, ans2, ans3 = message.chat.id, data.get('fio'), data.get('phone')
  con = sq.connect('saloon.db')
  cur = con.cursor()
  data_tuple = (ans1, ans2, ans3, ans4, ans5, ans6)
  cur.execute("""
            INSERT INTO saloon
            (Telegram_ID, ФИО, Номер_телефона)
            VALUES (?, ?, ?, ?, ?, ?);
            """, data_tuple)
  con.commit()
  con.close()
  await state.finish()

#Функция для ожидания

async def wait_for_task():
  await asyncio.sleep(5)

#Функция оповещения (работает в этом случае, если в таблице БД имеется 1 запись)

async def notification():
  await wait_for_task()
  con = sq.connect('saloon.db')
  cur = con.cursor()
  cur.execute("""SELECT Дата, Время, Telegram_ID, Услуга FROM saloon WHERE 
    Сообщение = 'Active';""")
  data1 = cur.fetchall()
  con.commit()
  con.close()
    if len(data1) == 1:
      now = datetime.now()
      date = data1[0][0] + ' ' + data1[0][1]
      new_date = datetime.strptime(date, '%d.%m.%Y %H:%M')
      diff = new_date - now
      if diff.total_seconds() <= 86400:
        await bot.send_message(data1[0][2], f'У вас имеется сеанс на 
              {data1[0][0]} {data1[0][1]}')
        con = sq.connect('saloon.db')
        cur = con.cursor()
        cur.execute("""UPDATE saloon SET Сообщение = 'Inactive' 
            WHERE Дата = ? AND Время = ? AND Telegram_ID = ?;""", data1[0])
        con.commit()
        con.close()


executor.start_polling(dp)

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