从 Azure Web App 执行的 Asyncio 函数不会提交数据库中的更改

问题描述 投票:0回答:0

我们正在尝试执行一个异步函数来执行填充数据库中表的 sql 代码。这是过程的模式:

...
import async
...

async SqlProcess(code, params):
...
   asyncio.ensure_future(executeSqlCode(Code, params)) 
   return 'Code executed'    

async executeSqlCode(code, params):
...
   cursor.execute(code, params)
   cnxn.commit()
...

使用 pycharm 这个过程运行良好。表中填充了适当的结果。但是,在 Web 应用程序执行期间监视表时,有一些我们无法理解的东西:

select count(*) from table (nolock) where condition

我们可以看到新数据正在存储,但是当过程结束时,表返回到没有新寄存器的原始计数。就像表中的回滚一样。

会发生什么?为什么这适用于 Pycharm 但不适用于 Web 应用程序。我们是这种异步方法的新手,肯定还缺少一些东西;我们检查了不同的站点以了解此结果,但到目前为止我们还没有找到原因。

python asynchronous python-asyncio
© www.soinside.com 2019 - 2024. All rights reserved.