RuntimeError:flask 中的线程中没有当前事件循环?

问题描述

为什么我在运行代码时会收到此错误

实际上我想在启动我的烧瓶应用程序时运行 autoreminder.py 并且 autoreminder.py 应该在每 10 秒后在后台调用

autoreminder.py

import asyncio
import aiohttp
from database import DBHelper

MESSAGE_TO_SEND = 'Please Complete Your Task'
ACCESS_TOKEN = access_token


db = DBHelper()


async def taskReminder(memberID):
    data = {
        "recipient": { "id": memberID },"message": { "text": MESSAGE_TO_SEND }
    }
    async with aiohttp.ClientSession() as session:
        async with session.post("https://graph.facebook.com/v8.0/me/messages?access_token="+ ACCESS_TOKEN,json=data) as response:
            return await response.text()

def main():

    loop = asyncio.get_event_loop()

    Members = db.loadMembersNotCompletedTask()
    coroutines = [taskReminder(''.join(member)) for member in Members]
    loop.run_until_complete(asyncio.gather(*coroutines))
    loop.close()

app.py

from flask import Flask,request,render_template
from apscheduler.schedulers.background import BackgroundScheduler
from autoreminder import main

app = Flask(__name__)


scheduler = BackgroundScheduler()
job = scheduler.add_job(main,'interval',seconds=10)
scheduler.start()


# Starting app
if __name__ == "__main__":
    app.run(threaded=True)

错误

RuntimeError: 线程中没有当前事件循环 'ThreadPoolExecutor-0_0'。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...