如何使用来自该脚本中的进度脚本调用的rpyc客户端的值

时间:2019-06-23 10:13:55

标签: python cmd openedge progress-4gl rpyc

尝试通过进度脚本使用rpyc服务器,并让该脚本根据我尝试从客户端获取的不同值执行不同的任务。

我正在使用rpyc服务器按用户要求自动执行一些任务,并尝试以这种方式在进度脚本中实现客户端:

1.progress脚本启动。

2.progress脚本通过cmd调用rpyc客户端,以运行一个检查服务器是否处于活动状态的函数,并返回某种var来指示服务器是否处于活动状态(对我来说并不重要)使用了一种指示,我想最好使用0-live 1-not live这样的不同字符。

3。根据上一步返回的值,或者通知用户服务器已关闭并退出,或者继续执行其余代码。

我苦苦挣扎的部分是第2阶段,如何以存储应返回值的方式调用客户端,以及如何将值实际正确返回给脚本。

我曾考虑过使用-param命令,但无法弄清楚如何在我的方案中使用它,我要返回的值是已经处于中间运行状态的脚本,而不仅仅是使用值。

我用来检查服务器是否启动的客户端代码是:

def client_check():
  c=rpyc.connect(host,18812)

if __name__=="__main__":
  try:
    client_check()
  except:
    #some_method_of_transferring_the_indication#

对于进度脚本,如上所述,我并没有真正设法找到正确的方法来调用客户端并以我尝试的方式存储值。

我想我可以让服务器创建一个文件来用作其状态的指示器,并在脚本开始时检查该文件,但是我不知道这样做是否正确,并尽量避免使用它。

1 个答案:

答案 0 :(得分:2)

我猜您是在说要从Progress脚本中脱壳,以将rpyc脚本作为外部进程运行?

在这种情况下,沿着这些行的内容将读取该rpyc脚本的输出的第一行:

define variable result as character no-undo format "x(30)".

input through value( "myrpycScript arg1 arg2" ).   /* this runs your rpyc script */
import unformatted result.               /* this reads the result */
input close.

display result.