c# - 为什么执行 exe 的 Control M OS Job 会在执行过程中卡住?
问题描述
我有 ac# exe,它使用 sed 从远程 unix 服务器读取一些日志行。当我在我的 Windows 服务器甚至我的开发 PC 上多次运行这个 exe 时,它执行得很好。但是,当我最终尝试在 Control M 中将其作为循环操作系统作业运行时(有时在第一次执行时,似乎是随机发生的),它会卡住但不会引发异常或任何事情。
作业的命令运行一个 .bat 文件,并且循环配置为 0 分钟,暂停时间由带有 thread.sleep 的 exe 动态控制。
在搜索网络并从我工作场所的其他使用控件 M 的区域寻求推荐之后,到目前为止,我尝试将代理更改为使用 ctmwincfg 的本地用户,我还尝试将代理服务更改为同一用户(不得不扭转这一点一个代理停止正常工作),我也从直接在作业中执行我的 exe 更改为使用 .bat 文件。
我的主机组代理之一是 windows server 2016,另外 3 个是 windows server 2012
解决方案
我无法在控件 M 本身中找到解决方案,而是在 .exe 的代码中找到解决方案。我使用了一个任务,它允许程序在超时后终止卡住的方法,这反过来又允许控制 M 作业正常完成。
var task = Task.Run(() => MyStuckMethod(arg));
if (task.Wait(TimeSpan.FromSeconds(30)))
return task.Result;
else
throw new Exception("Timed out");
或者,控制 M 中有一些解决方法,包括发送警报或创建喊叫,然后自动终止工作,但这对我的情况没有用。 BMC 社区中的示例
推荐阅读
- azure-resource-manager - 如何使用 ARM 中的新映像版本更新虚拟机?
- python-3.x - 在 Tensorflow 中构建 2D 到 2D 神经网络模型——无效的形状
- amp-html - amp-autocomplete 上的去抖输入
- powerbi - 从日期表中添加轴名称时,我的折线图变平
- javascript - 一些 Tailwind 样式在 Next.js 的生产环境中不起作用
- python - PyGame Rect 更新但不会在我的 while 循环中移动?
- node.js - 无法从 Facebook Graph API 为已获得“ads_read”权限的用户检索广告帐户
- postgresql - PgAdmin 无法连接到在 WSL2 上运行的服务器
- javascript - 我正在尝试使用 images.innerHTML = "<>" 从数组中的对象中提取图像,但我很难弄清楚
- pyspark - 带有 pyspark 的 CDC