gpt4 book ai didi

Python:开始psql查询,不要等待响应

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:19 25 4
gpt4 key购买 nike

我正在使用 python 和 psycopg2 开始 COPY TO CSV,这将花费很长时间(可能是几个小时)。复制到文件的工作将由 postgres 处理,因此不需要向我的 python 脚本返回任何信息。

有没有办法让我将查询传递给 postgres,然后在不等待响应的情况下断开连接,以便我的程序可以处理其他任务?

这是启 Action 业的方法:

def startJob(self):
#This bit will take the information and flags from the file and start the psql job
conn = psycopg2.connect('dbname=mydb user=postgres')
cur = conn.cursor()
beginClause = "COPY ("
selectClause = """SELECT '%s' FROM db """ % ','.join(self.flags)
whenClause = """WHERE 'start' BETWEEN '%s' AND '%s'""" % self.info['begin'] self.info['end']
destClause = """) TO '/dest/%s' WITH CSV HEADER""" % self.name

fullQuery = beginClause + selectClause + whenClause + destClause

#I want the execute to start the job, and then return so that I can
#resume regular operation of the program
cur.execute(fullQuery)

conn.close()
self.changeStatus('progress')

最佳答案

在 psycopg2 中有一个异步能力,你不能断开连接,但你可以有效地在后台运行你的工作并等待结果(如果你愿意的话)。见:

http://initd.org/psycopg/docs/advanced.html

大约一半:

conn = psycopg2.connect(database='mydb', async=1)

如果您在那个连接上运行您的工作,您应该能够让它在没有您的程序参与的情况下运行。如果你想双脚异步跳跃,我建议看看 txpostgres。

http://txpostgres.readthedocs.org/

-g

关于Python:开始psql查询,不要等待响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24437003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com