如何在Autosys中创建优先级队列计划?

时间:2017-05-03 20:47:20

标签: batch-processing schedule informatica autosys

可用技术:Autosys,Informatica,Unix脚本,数据库(可通过informatica获取)

我们的批处理当前是如何工作的是文件监视器查找名为“control.txt”的文件,该文件在订阅源开始处理时被删除。它会在完成后重新创建,允许所有“控制”自动作业等待,让一个人拿起控制文件并开始逐个处理数据。

然而,系统已经变得越来越大,一些提要比其他提要更重要,我们正在寻找改进我们的计划程序以优先考虑提要的方法。

根据目前的设计,一个文件决定下一个Feed何时运行,它无法完成,而且我无法想出一个简单的解决方案来实现它。

示例:

1. Feed A is processing
2. Feed B, Feed C, Feed X, Feed F come in while Feed A is processing
3. Need to ensure that Feed B is processed next, even though C, X, F are ready. 
4. C, X, F have a lower priority than A and B, but have the same priority and can process in any order

2 个答案:

答案 0 :(得分:0)

一个非常有趣的问题。我能想到的一件事是使用shell脚本进行额外的Autosys作业,该脚本按特定顺序复制文件。像:

  • 创建输入文件夹,例如StageFolder
  • 让我们调用您当前的Autosys输入文件夹“InputFolder”
  • 让Autosys监控它以及每分钟运行OrderedFileCopyScript.sh的任何文件
  • 仅当InputFolder为空时,OrderedFileCopyScript.sh应按所需顺序将一个文件从StageFolder复制到InputFolder

我希望我能说清楚。

答案 1 :(得分:0)

我反对使用Autosys来满足这一要求!错误的工具!

我不知道所有细节,但考虑使用通常的参考表的应用程序。

在这种情况下,您应该使用Feed引用表来包含相对优先级。

我建议创建(或重用)由文件观察器的后继作业加载的表。

1)表包含具有相应优先级的未处理文件,然后使用此表根据优先级处理文件。

2)完成后删除/归档条目。

3)有另一项工作,并使用start_times / run_window像守护进程一样运行。

这样可以灵活地处理优先级的变化,并使整体设计变得简单。

这给出了