Страница открывается , но Flask не запускается. Чем заменить цикл "while"?

Код должен получать данные через webhook и что-то делать на сайте. И каждый день в нужное время авторизоваться. Если так, страница открывается , но Flask не запускается.

def main():
    open_page()
    app.run()

Если так, наоборот.

def main():
    app.run()
    open_page()

Весь код:

from flask import Flask, request, abort
from selenium import webdriver
from time import sleep 
import datetime
   


driver = webdriver.Chrome(
    executable_path=r"E:\Projects\python project\webhook\chromedriver.exe")


def time_now():
    return datetime.datetime.now()


url = "https://example.ru/"

def open_page():
    driver.get(url=url)            
    while True:
        if time_now().hour == 3 and time_now().minute == 00 and time_now().second == 0:
            login()
        sleep(1)
        

def login():
    "some code"

def do_something(data):
    "some code"



app = Flask(__name__)


@app.route('/', methods=['POST'])
def webhook():
    if request.method == 'POST':
        data = request.get_json()
        if data['key'] == "new":
            do_something(data)
            return '', 200
        else:
            abort(403)
    else:
        abort(400)


def main():
    open_page()
    app.run()


if __name__ == "__main__":
    main()

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

Автор решения: Bor-is-luv

Верно подмечено, нужно избавиться от while в open_page. Это можно сделать, запуская open_page по расписанию. Например при помощи APScheduler https://pypi.org/project/APScheduler/, либо Celery https://pypi.org/project/celery/.

→ Ссылка