Django中的多进程处理,每个进程都有db queires

2024-04-19 00:48:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我在数据库中有大约3万个条目,每个条目都必须被处理并转储到一个文件中。在

def reset_database_connection():
    from django import db
    db.close_old_connections()

all_ids = [q_id for q_id in MyModel.objects.values_list('id', flat=True)]

# chunk the huge list into 5 parts
chunked_all_ids = [all_ids[i::5] for i in xrange(5)]

for ids in chunked_all_ids:
    p = Process(target=my_script, args=(ids, ids[0]))

    # close parent process db connection, so each new process creates its own one
    reset_database_connection()
    p.start()
    p.join()

my_script中,我将查询数据库,获取一些信息并写入文件。在我的脚本中,我将在查询时间较长的地方再次重置数据库连接

当我运行代码时,我是从进程2开始的错误

^{pr2}$

我做错什么了?如何创建5个进程,每个进程都可以独立处理6k项而不丢失数据库连接?在

我用的是python2和django1.8


Tags: 文件inid数据库idsforclosedb