在sqlalchemy中并行运行查询

时间:2016-06-22 09:58:52

标签: python postgresql sqlalchemy

我在db A中有一个表(比如table_A),db的B和C中有另外两个表。我正在运行查询:

session.query(Table_A).filter(Table_A.date >= time1, InventoryLog.audit_date < time2)

我在循环中运行它,在table_B中添加行并在每次迭代中更新time1,time2。

现在,我想在不同的时间间隔内在同一个(或不同的表)上并行运行另一个查询,并插入另一个table_C(循环)。重要的是并行运行它们。

我应该如何在sqlalchemy中解决这个问题?我应该使用芹菜还是过度杀戮?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以使用线程进行并行处理。

from threading import Thread

def fn1(arg1):
    while True:
        session.query(Table_A).filter(Table_A.date >= time1, InventoryLog.audit_date < time2)
        # do other stuff


def fn2(arg1):
    while True:
        session.query(Table_B).filter(Table_B.date >= time1, InventoryLog.audit_date < time2)
        # do other stuff


def fn3(arg1):
    while True:
        session.query(Table_C).filter(Table_C.date >= time1, InventoryLog.audit_date < time2)
        # do other stuff


t1 = Thread(target=fn1, args=(1,))
t2 = Thread(target=fn2, args=(1,))
t3 = Thread(target=fn3, args=(1,))

t1.start()
t2.start()
t3.start()