我運行這段代碼:py2neo緩存燒我嗎?
c = """
match(r:XX)
optional match(r)-[]-(m) with count(m) as mc, r match(x)
return count(x) as all, r, mc
"""
(snip!)
while(True):
tx = remote_graph.cypher.begin()
res = remote_graph.cypher.execute(c)
tx.rollback()
time.sleep(15)
(snip!)
我知道一個事實XX節點的屬性正在改變每一秒 - 有一個守護進程運行。然而,當我運行它,我總是得到相同的值回res
但r
只有 - all
正在發生變化。查詢不會改變。我不知道py2neo是否注意到這一點,並沒有執行查詢,但是返回一個緩存副本?如果是這樣,我該如何阻止這種情況發生?
編輯 - 更多信息 - 我跑了從上面的IPython內。
什麼'exec_cypher'是怎麼回事?爲什麼'rollback()'? –
@MartinPreusse啊,對不起。 exec_cyper(sic)是我們寫的一個例程,在這種情況下不會影響查詢。我會替換它。 –
@MartinPreusse我可能不需要這裏的'begin()'或'rollback()'。即使在顯然沒有必要的時候,我也從不後悔使用'rollback()'。 –