async def schedule_repeat(user_id: int, set_id: int, set_name: str): repeat = await db.get_repeat(user_id, set_id) if not repeat: repeat_time = datetime.now() + config.repeat_stages[0] await db.add_repeat(user_id=user_id, set_id=set_id, set_name=set_name, repeat_stage=0, repeat_time=repeat_time) scheduler.add_job(notify_to_repeat, "date", run_date=repeat_time, args=(user_id, set_id, set_name)) elif repeat["repeat_time"] <= datetime.now( ) and repeat["repeat_stage"] + 1 < len(config.repeat_stages): repeat_stage = repeat["repeat_stage"] + 1 repeat_time = datetime.now() + config.repeat_stages[repeat_stage] await db.update_repeat(user_id, set_id, repeat_stage=repeat_stage, repeat_time=repeat_time) scheduler.add_job(notify_to_repeat, "date", run_date=repeat_time, args=(user_id, set_id, set_name))
async def bot_start(msg: types.Message): user = User.get_current() await db.add_user(id=user.id, username=user.username, full_name=user.full_name) await redis_commands.set_new_user(user_id=user.id) scheduler.add_job(greeting, args=(msg, ))
def schedule_jobs(): group = APIMethodsGroup() minute = random.randint(8, 57) hour = random.randint(3, 5) scheduler.add_job(group.compare_all_groups, "cron", day_of_week='mon-sun', hour=hour, minute=minute)
async def on_startup(dispatcher): scheduler.add_job( broadcaster, args=(dp, rasp), trigger='interval', hours=24, next_run_time=datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) + timedelta(hours=3) ) scheduler.add_job(get_rasp, args=(rasp, old_file_id, dp), trigger='interval', hours=1, next_run_time=datetime.now()) scheduler.start() # Уведомляет про запуск await notify_admins_def(dispatcher, "Я запустился")
async def restart_repeat_notifications(): repeats = await db.get_all_repeats() for repeat in repeats: if datetime.now() >= repeat["repeat_time"]: await notify_to_repeat(repeat["user_id"], repeat["set_id"], repeat["set_name"]) else: scheduler.add_job(notify_to_repeat, "date", run_date=repeat["repeat_time"], args=(repeat["user_id"], repeat["set_id"], repeat["set_name"])) logging.info("Restart all repeat notifications")
async def on_startup(dispatcher): print("Подключаем БД") await db_gino.on_startup(dp) print("Готово") # Уведомляет про запуск await on_startup_notify(dispatcher) # Настраиваем команды await set_default_commands(dp) # Добавляем задачу scheduler'у scheduler.add_job(send_schedule_to_subscribed_users, 'cron', hour='8-23', minute='*/30', timezone=TIMEZONE)
def schedule_jobs(): scheduler.add_job(send_message_to_admin, 'interval', seconds=config.SEC_CLEAR, args=(dispatcher, ))
def schedule_jobs(): scheduler.add_job(func=send_db_to_admin, trigger="interval", hours=12, args=())
async def job(): scheduler.add_job(db_worker, 'cron', minute=00)
def schedule_jobs(): """Добавляем задачи в scheduler""" scheduler.add_job(add_new_photo, "cron", hour=00, minute=30) scheduler.add_job(send_notifications, "cron", hour=13, minute=30)