亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

neo4j-go-driver 強制中止長時間運行的查詢

neo4j-go-driver 強制中止長時間運行的查詢

Go
繁星coding 2022-08-01 17:29:06
我在后端應用程序上有幾個neo4j Cypher查詢。在極少數情況下,其中一個查詢需要很長時間才能完成(由于我猜是由于未優化的查詢),不僅如此,它還使服務器資源使用率達到極高的峰值。我目前正在使用Go編程,我使用官方的neo4j-go-driver。有沒有辦法使用驅動程序終止長時間運行的查詢?從驅動程序的文檔,我發現了這個API WithTxTimeout。但是,我不確定API的作用,它是否只是忽略了表面上長時間運行的查詢或實際終止它。真的需要幫助。提前致謝。
查看完整描述

2 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

我認為它應該終止它。代碼應如下所示(替換為取決于查詢):ReadTransactionWriteTransaction


query := "MATCH (n) RETURN n"

timeout := 30 * time.Second

result, err := session.ReadTransaction(func(tx neo4j.Transaction) (interface{}, error) {

    result, err := tx.Run(query, map[string]interface{}{})

    // do something interesting

}, neo4j.WithTxTimeout(timeout))


查看完整回答
反對 回復 2022-08-01
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

您也可以將服務器的事務超時設置為某個值,默認情況下它是禁用的:

 neo4j> CALL dbms.setConfigValue('dbms.transaction.timeout', '360s') ;


查看完整回答
反對 回復 2022-08-01
  • 2 回答
  • 0 關注
  • 243 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號