Example 7. 远程函数调用



当需要把本地函数发送到远程节点执行时,我们无需关注函数定义之间的依赖关系或者是函数需要的数据,因为DolphinDB会自动把它们发送到远程节点。


下面的例子定义了3个函数:job1,job2和job3。job3调用了job2,job2调用了job1。



def job1(x){

       sleep(5000)

       return x.sum()

}

def job2(x, y){

       job1_ID = submitJob("job1_ID","",job1{x})

       sleep(4000)

       job1result=getJobReturn(job1_ID,true)

       return job1result + y.sum()

}

def job3(x, y, z){

       job2_ID = submitJob("job2_ID","",job2{x,y})

       sleep(3000)

       job2result=getJobReturn(job2_ID,true)

       return job2result + z.sum()

}


x=[1,2]

y=[1,2,3]

z=[1,2,3,4]

job3_ID = rpc("174-node1", submitJob{"job3_ID", "remote run", job3{x,y,z}})

rpc("174-node1", getJobReturn{job3_ID,true});



在倒数第二行,我们使用了rpc函数来执行远程函数调用。以下信息会自动发送到远程节点:

Download source code here.