当需要把本地函数发送到远程节点执行时,我们无需关注函数定义之间的依赖关系或者是函数需要的数据,因为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函数来执行远程函数调用。以下信息会自动发送到远程节点: