python - 使用python同时下载文件并插入到mysql数据库

标签 python mysql multithreading multiprocessing urllib2

我正在使用 urllib2 下载相对较大的文件(每个 10mb),然后将其作为 json 文件加载并将数据插入 mysql 数据库,然后在无限循环中重复该过程。下载需要一分钟左右,然后将所有内容加载到 mysql 中。有没有办法创建一个线程来执行下载,而主线程使用 python 插入 mysql?

我的伪代码:

while 1:
 download file with urllib2
 decode as json file
 extract data I want
 do some computations on data
 insert data into mysql

非常感谢!

最佳答案

您可以做的是使用线程和队列。文件 IO 线程将读取和处理文件,然后将结果插入队列,然后数据库 IO 线程将在队列中发现结果并执行工作。与其编写示例代码,我将在此处指导您:http://www.ibm.com/developerworks/aix/library/au-threadingpython/

或者,您可以使用 python select 模块来管理多个文件读取操作,并在它们完成时一个一个地处理它们:http://docs.python.org/library/select.html

关于python - 使用python同时下载文件并插入到mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8921700/

相关文章:

c# - 任务(或线程)需要 Wait 或 Join 才能工作

python - 如何在 Python 中实现多词人名的拼音算法

python - 简单的 Pygame 加载缓慢

python - 将多索引数据帧与列标题连接起来

mysql - 搜索左连接 null

php - PDO:Fetch 和 FetchAll 在同一条语句上

php - 选择出生日期为 +/- 5 年(PHP dob 变量)的人

java - 具有 SupplyAsync 的 CompletableFuture 未按预期工作

java - JAVA 中的守护进程线程组是什么?

python:将列表的每个元素组合到元组列表