我有一个由3个作业组成的Ctrl-M工作流,应该每15分钟运行一次,如下所示:
我发现,如果您不将Job2和Job3也定义为循环,那么它们在第一次执行后就再也不会被踢了。你知道为什么吗?我为解决这个问题所做的是将Job2和Job3也设置为每15分钟循环一次,但这使得我的“工作流”
示例:Job1在1分钟内运行,Job1-OK out条件被释放,Job2被启动,从Job2到Job3相同。Job1现在正在等待下一个15分钟周期,该周期被命中,它运行并需要20分钟运行:并行地,Job2正在等待15分钟周期+Job1的out条件:一旦命中Job2的15分钟周期,Job1的前置条件被评估,返回false(因为Job1仍在运行),Job2进入下一个15分钟周期的wait条件+Job1-OK out条件运行Job2。Job1在18分钟内完成,并释放“Job1-OK”条件,但Job2没有启动,因为下一个循环将在接下来的12分钟内发生,因为Job1运行了18分钟。因此,Job2执行在这个循环中丢失。
我基本上希望Job2运行,只要Job1完成,无论时间表,时间,周期或其他。有可能完成这样的任务吗?否则,我如何满足这样的要求,而不重叠之间的周期和先决条件检查?
非常感谢,我希望我解释得很清楚!
要定义循环流,所有的作业都必须是循环的。对于您的场景,我建议将Job1设置为15分钟循环,将Job2和Job3都设置为1分钟循环。只要您在成功完成作业时删除In条件,那么此流程将完美地工作。
您的替代解决方案确实有效,但当涉及到许可时,它的成本非常高。Control-M是根据作业中订购的数量获得许可的。因此,如果您定义了一个流程,无限的订单在额外的工作,准备一个大账单!
可能存在需要多次执行代码块的情况。 通常,语句按顺序执行:首先执行函数中的第一个语句,然后执行第二个语句,依此类推。 编程语言提供各种控制结构,允许更复杂的执行路径。 loop语句允许我们多次执行语句或语句组,以下是大多数编程语言中循环语句的一般形式 - Java编程语言提供以下类型的循环来处理循环要求。 单击以下链接以检查其详细信息。 Sr.No. 循环和描述 1 while 循环 在给定条件为
虽然你在使用了collections的函数操作符之后不会再过多地使用for循环,但是for循环再一些情况下仍然是很有用的。提供一个迭代器它可以作用在任何东西上面: for (item in collection) { print(item) } 如果你需要更多使用index的典型的迭代,我们也可以使用ranges(反正它通常是更加智能的解决方案): for (index in 0..vie
下面AtomicBigInteger实现的方法是原子操作吗?我特别想知道部分。JVM是否以某种方式保证for循环中的每个循环都是原子式执行的? 我从这里得到了这段代码:是否可以以线程安全的方式安全地递增BigInteger,也许可以使用AtomicReference,W/O锁定?然而,这个实现正在进行中,您可以在Internet上的许多不同地方找到它。
题目 Given a set of distinct integers, nums, return all possible subsets. Note: The solution set must not contain duplicate subsets. For example, If nums = [1,2,3], a solution is: [ [3], [1], [2],
你也可以使用while循环,尽管它们两个都不是特别常用的。它们通常可以更简单、视觉上更容易理解的方式去解决一个问题,两个例子: while(x > 0){ x-- } do{ val y = retrieveData() } while (y != null) // y在这里是可见的!
我搜索了Google、StackOverflow和Github问题,但没有找到任何内容 https://docs.temporal.io/docs/java-implementing-workflows#child-workflows 似乎我可以轻松地创建一个包含多个工作流的圆圈,将其他人称为子工作流。工作流甚至可以一遍又一遍地调用自己。节奏/时间是否提供任何东西来防止这种情况或超出范围? 提前感