Python 使用带有asyncpg db的apscheduler作为作业存储:错误MissingGreenlet

Python 使用带有asyncpg db的apscheduler作为作业存储:错误MissingGreenlet,python,sqlalchemy,greenlets,asyncpg,Python,Sqlalchemy,Greenlets,Asyncpg,我正在尝试通过asyncpg连接将Apscheduler与postgresql db一起使用。我认为它会起作用,因为asyncpg支持sqlalchemy。但是是的,它不起作用。更糟糕的是,我不理解错误信息,所以我甚至猜不出谷歌搜索的目的是什么 导入异步IO 从apscheduler.schedulers.asyncio导入AsyncIOScheduler 从apscheduler.jobstores.sqlalchemy导入SQLAlchemyJobStore def simple_job()

我正在尝试通过asyncpg连接将Apscheduler与postgresql db一起使用。我认为它会起作用,因为asyncpg支持sqlalchemy。但是是的,它不起作用。更糟糕的是,我不理解错误信息,所以我甚至猜不出谷歌搜索的目的是什么

导入异步IO
从apscheduler.schedulers.asyncio导入AsyncIOScheduler
从apscheduler.jobstores.sqlalchemy导入SQLAlchemyJobStore
def simple_job():
打印(“这是一件容易的工作!”)
scheduler=AsyncIOScheduler()
jobstore=SQLAlchemyJobStore(url='postgresql+asyncpg://user:password@本地主机:5432/public')
调度器.添加作业库(作业库)
#安排一项简单的工作
添加任务(简单任务,'cron',second='15',id='heartbeat',
合并=真,缺火\u格雷斯\u时间=5,替换\u现有=真)
scheduler.start()
版本:

python 3.7
APScheduler==3.7.0
asyncpg==0.22.0
SQLAlchemy==1.4.3
错误消息和回溯:

Traceback (most recent call last):
  File "C:/Users/d/PycharmProjects/teamutils/utils/automation.py", line 320, in <module>
    scheduler.start()
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\apscheduler\schedulers\asyncio.py", line 45, in start
    super(AsyncIOScheduler, self).start(paused)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\apscheduler\schedulers\base.py", line 163, in start
    store.start(self, alias)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\apscheduler\jobstores\sqlalchemy.py", line 68, in start
    self.jobs_t.create(self.engine, True)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\sql\schema.py", line 940, in create
    bind._run_ddl_visitor(ddl.SchemaGenerator, self, checkfirst=checkfirst)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\engine\base.py", line 2979, in _run_ddl_visitor
    with self.begin() as conn:
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\engine\base.py", line 2895, in begin
    conn = self.connect(close_with_result=close_with_result)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\engine\base.py", line 3067, in connect
    return self._connection_cls(self, close_with_result=close_with_result)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\engine\base.py", line 91, in __init__
    else engine.raw_connection()
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\engine\base.py", line 3146, in raw_connection
    return self._wrap_pool_connect(self.pool.connect, _connection)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\engine\base.py", line 3113, in _wrap_pool_connect
    return fn()
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\pool\base.py", line 301, in connect
    return _ConnectionFairy._checkout(self)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\pool\base.py", line 755, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\pool\base.py", line 419, in checkout
    rec = pool._do_get()
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\pool\impl.py", line 145, in _do_get
    self._dec_overflow()
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\util\langhelpers.py", line 72, in __exit__
    with_traceback=exc_tb,
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\util\compat.py", line 198, in raise_
    raise exception
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\pool\impl.py", line 142, in _do_get
    return self._create_connection()
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\pool\base.py", line 247, in _create_connection
    return _ConnectionRecord(self)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\pool\base.py", line 362, in __init__
    self.__connect(first_connect_check=True)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\pool\base.py", line 605, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\util\langhelpers.py", line 72, in __exit__
    with_traceback=exc_tb,
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\util\compat.py", line 198, in raise_
    raise exception
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\pool\base.py", line 599, in __connect
    connection = pool._invoke_creator(self)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\engine\create.py", line 578, in connect
    return dialect.connect(*cargs, **cparams)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\engine\default.py", line 548, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 744, in connect
    await_only(self.asyncpg.connect(*arg, **kw)),
  File "C:\Users\d\PycharmProjects\teamutils\venv\lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 48, in await_only
    "greenlet_spawn has not been called; can't call await_() here. "
sqlalchemy.exc.MissingGreenlet: greenlet_spawn has not been called; can't call await_() here. Was IO attempted in an unexpected place? (Background on this error at: http://sqlalche.me/e/14/xd2s)
sys:1: RuntimeWarning: coroutine 'connect' was never awaited
回溯(最近一次呼叫最后一次):
文件“C:/Users/d/PycharmProjects/teamutils/utils/automation.py”,第320行,在
scheduler.start()
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\apscheduler\schedulers\asyncio.py”,开始部分第45行
超级(异步调度程序,自)。启动(暂停)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\apscheduler\schedulers\base.py”,第163行,在开始处
store.start(self,别名)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\apscheduler\jobstores\sqlalchemy.py”,第68行,在开始处
self.jobs\u.create(self.engine,True)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\sql\schema.py”,第940行,在create中
绑定。运行ddl访问者(ddl.SchemaGenerator,self,checkfirst=checkfirst)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\engine\base.py”,第2979行,在运行ddl\visitor中
将self.begin()作为conn:
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\engine\base.py”,第2895行,在begin中
conn=self.connect(使用结果关闭结果=使用结果关闭结果)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\engine\base.py”,第3067行,在connect中
返回self.\u连接\u cls(self,使用结果关闭\u=使用结果关闭\u)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\engine\base.py”,第91行,在u init中__
else引擎原始连接()
原始连接中的文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\engine\base.py”,第3146行
返回self.\u包装\u池\u连接(self.pool.connect,\u连接)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\engine\base.py”,第3113行,在“包装”池中
返回fn()
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\pool\base.py”,第301行,在connect中
返回\u连接\u签出(自我)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\pool\base.py”,第755行,在签出中
fairy=\u ConnectionRecord.checkout(池)
签出中第419行的文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\pool\base.py”
rec=pool.\u do\u get()
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\pool\impl.py”,第145行,在
self._dec_overflow()
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\util\langhelpers.py”,第72行,在退出时__
使用_traceback=exc_tb,
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\util\compat.py”,raise中第198行_
引发异常
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\pool\impl.py”,第142行,在
返回self.\u创建\u连接()
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\pool\base.py”,第247行,在创建连接中
返回连接记录(自身)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\pool\base.py”,第362行,在u init中__
自我连接(第一次连接检查=真)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\pool\base.py”,第605行,在u connect中
debug(“connect()上的错误:%s”,e)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\util\langhelpers.py”,第72行,在退出时__
使用_traceback=exc_tb,
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\util\compat.py”,raise中第198行_
引发异常
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\pool\base.py”,第599行,在uu connect中
连接=池。\u调用\u创建者(自身)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\engine\create.py”,第578行,在connect中
返回方言。连接(*cargs,**cparams)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\engine\default.py”,第548行,在connect中
返回self.dbapi.connect(*cargs,**cparams)
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\dialogs\postgresql\asyncpg.py”,第744行,在connect中
仅等待_(self.asyncpg.connect(*arg,**kw)),
文件“C:\Users\d\PycharmProjects\teamutils\venv\lib\site packages\sqlalchemy\util\\u concurrency\u py3k.py”,第48行,仅在wait\u中
“尚未调用greenlet_spawn;无法在此处调用wait_()
sqlalchemy.exc.MissingGreenlet:greenlet_spawn尚未调用;无法在此处调用Wait_uuz()。是否在意外的地方尝试了IO?(有关此错误的背景信息,请访问:http://sqlalche.me/e/14/xd2s)
sys:1:RuntimeWarning:coroutine“connect”从未等待
我查找了提供的链接,但没有发现它。如果有人能告诉我发生了什么,那就太好了,这样我就可以自己寻找解决方案。(当然,解决方案也可以xD)

很抱歉这个“开放”的问题,但是我的