【发布时间】:2020-09-07 00:16:43
【问题描述】:
我正在处理每晚运行的 autosys 上的作业路径。
其中一个作业只需要在每个月初的特定日期运行(通常是前 4 天,但可能会根据业务而变化),因此目前我将所述作业手动设置为 ON_ICE 或 OFF_ICE,我'我希望将其自动化。
我目前有 2 个想法,但无论选择哪种方式都卡住了。
选项 1(最干净的?)
我会在daily_job 和monthly_job 之间创建一个新工作,称为calendar_check。 该作业将在我的应用服务器上启动批处理,检查日历所在应用的数据库,并根据数据库检查将好命令发送回 autosys,以将下一个作业置于 ON 或 OFF_ICE。
我的批次是这样的
%My_SQLPATH% -S %My_SQL_SERVER% -d %My_SQL_DB -h-1 -W -Q "SQL Query that returns 1 or 0 depending on the calendar in my application" output.txt
set /P bEndMonth= < output.txt
echo %bEndMonth%
del output.txt
IF %bEndMonth% == 0 (start "somthing i don't know what 'sendevent -j ON_ICE -e monthly_job'") ELSE (start "somthing i don't know what 'sendevent -e OFF_ICE -j monthly_job'")
最后一行是我不知道如何编写的,或者是否有可能返回我的 autosys 服务器并使用 sendevent 命令。
选项 2(更混乱但可能更容易)
我创造了 2 个新工作。一,在我的工作道路上,每天把monthly_job ON_ICE。 另一个不在我的工作路径上,读取 autosys 日历并仅在日历日期运行以将monthly_job OFF_ICE。 缺点是我必须在 autosys 中维护另一个日历,但这很小。
但我还是不知道 jil 要求一项工作将另一项工作置于冰上或下冰的语法。
欢迎任何帮助或任何其他关于我如何实现这一点的想法。 谢谢!
【问题讨论】:
-
如果我对这个问题的理解正确,为什么不使用任务调度器呢?
-
@NekoMusume 不知道如何回答你对不起。我只是我们夜间连锁店的一小部分,我刚刚为我的应用程序添加了“monthly_job”,所以我一直在使用其他人使用的相同工具。您能否明确说明任务调度程序与 autosys 的工作方式有何不同并帮助我?
-
抱歉,我以前没有使用过 Autosys,但从我的搜索结果来看,它们看起来非常相似。如果您的系统管理员允许,您也应该检查任务计划程序,因为它是内置在 Windows 中的。
-
@NekoMusume 所以我检查了这个,不幸的是这是不可能的。我必须在这种情况下使用 autosys。该作业需要由外部操作员控制,并与我们业务中运行的其他应用程序作业保持一致。
标签: batch-file scheduled-tasks autosys