我们在短时间间隔内从mainframes.we收到两个不同的文件,无法预测文件的到达顺序。这些文件应该由两个不同的工作流程挑选。但它应该以互斥的方式触发。换言之,如果一个工作流正在运行,则其他工作流必须等待前一个工作流。
发布于 2018-05-23 06:32:13
这可以通过在公共位置设置一些标志来实现。并且每个作业都应该访问该位置,如果设置了该标志,则等待该标志被取消设置。
基于上面的陈述,在执行任何一个工作流之前,我已经在unix服务器上的特定位置创建了一个文件。任何工作流都会在特定位置看到该文件,如果该文件存在,则它会等待该文件被先前启动的前一个作业删除。
下面是unix脚本,用于创建文件并等待删除文件。可以在前置处理页签的工作流的第一个作业中定义。
#!/bin/bash
while true
do
files=$(ls /u/users/lock 2> /dev/null | wc -l)
if [ "$files" != "0" ]
then
echo "Other <workFlow name> is running wait for 10 second"
sleep 10
else
echo "<workFlow name > is not running so <current workflow name> is starting"
touch /u/users/lock
exit 0
fi
done要删除以下工作流程末尾的文件,请使用unix脚本。此脚本必须在进程选项卡中最后一个作业中定义。
#!/bin/bash
echo "<current workFlow name> is finshed so releasing the lock"
files=$(ls /u/users/lock 2> /dev/null | wc -l)
if [ "$files" != "0" ]
then
rm /u/users/lock
fihttps://stackoverflow.com/questions/50471760
复制相似问题