如何在同步Python代码中使用异步代码?

时间:2019-10-08 17:44:33

标签: python concurrency

我正在开发django 2.2(使用mySql数据库)应用程序,其中包含一些代码以从csv源导入数据。 代码是同步的:

  1. 加载下一个csv行并进行一些预处理(归一化/消毒) 输入数据)

  2. 从输入数据创建或更新Django模型(并执行数据库 读/写)

这里有明显的瓶颈:

  • 从csv文件读取行的磁盘I / O(少数文件超过4M 记录)
  • 关于数据库通信的网络I / O(TCP / IP套接字)

可以优化流程: 读取输入数据,然后将其传递给异步代码以进行数据库操作-触发并忘记。不用等待数据库完成,而是加载下一个csv行。

在这种情况下,您对优化策略有何建议?

1 个答案:

答案 0 :(得分:0)

您的问题...

尝试在devent中使用Django

1)使用'csv'lib和'csv.reader'并在'csv.reader'调用返回的元素上循环

2)使用Mysqldb或pymsql作为Django orm的方言库来异步访问数据库