span8
span4
我试图配置一个python关机脚本,以便在用户过早取消工作流时运行。亚搏在线在测试中,我发现scrip不运行(或者至少看起来不运行)。
这是预期行为吗?有人能解决这个问题吗?@DebbiAt亚搏在线Safe什么好主意吗?
这里的限制是当使用实时流时——进程永远不会结束,直到终止/取消。
干杯
马克已经提出了一些解决办法,所以我将回答你问题中预期的行为部分。
我认为,如果翻译被用户中止,则不能执行关机脚本是预期的行为。
如中所述文件在这里,关机脚本在翻译成功或提前完成后运行。当停止工具被使用(即。翻译失败),FME立即终止该进程。翻译没有机会完成,因此关闭脚本不会运行。
如果翻译由于错误而结束(例如。翻译失败,原因是被拒绝的特性或终止符),关机脚本在翻译完成时运行——清理完成后,读者和作家被关闭,并关闭日志文件。
我希望这些信息能有所帮助。
我可以想出一个变通的办法,但一点也不漂亮。不管你用的是哪种“接收器”变压器,而不是手动停止,发送一个带有“STOP”消息的最终消息给它。然后测试人员测试它是否是一个停止消息,如果是这样,运行python调用程序,然后运行终止变压器。
更漂亮,而不是给接收者最后的信息,将每个真实的消息发送到DropboxConnector。它获取一个文件列表和ifSTOP.TXT就在那里,然后运行PythonCaller/终止符。
你可以用Twitter代替Dropbox,电子邮件,数据库记录等。只是某个地方的某种标志,说要运行Python,然后停止翻译。但除非它是自己的接收器,只有当WhateverReceiver接收到消息时才会运行它。
另外,当您启动工作区时,获取进程ID并将其发送到…另一个工作区或Python脚本。可以监视进程ID何时终止并对其进行操作。
希望这个有帮助。我知道这些都不是很优雅,但现在我只能想到这些了。
谢谢你的建议@Mark2At亚搏在线Safe,我想我可以试着获得fme pid,并按照您的建议将其传递到一个工作区进行监视。但你是对的,它并不漂亮。
我在这里创造了一个想法,让其他人投票表决:https://knowledge.亚搏在线safe.com/idea/87965/shutdown-scripts-to-run-even-if-the-process-is-abo.html?
©2019安全亚搏在线软件公司法律