Neo4j圖數據庫高級應用系列 / 服務器擴展指南 APOC(4.3) - 後臺執行查詢submit

1、定義

對於複雜的更新數據庫的Cypher查詢,可以使用APOC的submit()過程異步執行該查詢。APOC還提供下面的過程管理異步/後臺執行的任務:

  1. apoc.periodic.list():列出所有正在後臺執行的任務
  2. apoc.periodic.cancel(taskName):終止後臺任務

管理正在運行的查詢是Neo4j企業版纔有的功能。因爲APOC可以同時運行在Neo4j社區版和企業版上,使用上述APOC異步執行過程使得社區版同樣擁有部分管理後臺查詢的能力。

2、過程概述

apoc.periodic.submit過程參數說明如下所示。

參數名

類型

默認值

可爲空?

說明

taskName

字符串

給查詢任務賦予的名稱

statement

字符串

Cypher查詢。可以是查詢或者更新操作

3、Cypher示例

// (1) 後臺/異步執行復雜查詢,計算1億次加法。
//  參數:- taskName: “Large query”
//        - statement: 計算1億次加法 

CALL apoc.periodic.submit('Large query', 
   'UNWIND range(1,10000) AS a1 UNWIND range(1,10000) AS a2 WITH a1+a2 AS a RETURN sum(a)'
)


// (2) 查詢後臺/異步執行的查詢任務的狀態。
//  參數:無。

CALL apoc.periodic.list()
YIELD name, delay, rate, done, cancelled
WITH name, done
WHERE name  = 'Large query'
RETURN *

// (3) 終止後臺/異步執行的查詢任務。
//  參數:- taskName: “Large query”

CALL apoc.periodic.cancel('Large query')

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章