【问题标题】:how to use value from an rpyc client called from a progress script in that script如何使用从该脚本中的进度脚本调用的 rpyc 客户端的值
【发布时间】:2019-11-05 10:51:41
【问题描述】:

尝试通过进度脚本使用 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#

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

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

【问题讨论】:

    标签: python cmd openedge progress-4gl rpyc


    【解决方案1】:

    我猜你是说你正在从 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.
    

    【讨论】:

    • 现在无法编辑我的评论,但我有一个后续问题,如果我需要使用该方法运行客户端,并从我的进度脚本传递参数,我应该怎么做正确吗?
    • 提供给 INPUT THROUGH 的字符串是您在命令行中执行的任何操作。所以只需在那里添加参数。它不必是文字字符串。它可以是一个表达式,如果你愿意,你可以从变量中构建它。
    猜你喜欢
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-12
    相关资源
    最近更新 更多