历史回放如何在抑扬顿挫中发挥作用?
我有一个按顺序调用两个活动的工作流。
比方说,第一个活动完成了,第二个活动有100行代码。如果应用服务器在执行activity2中的第50行代码时重新启动,它会从第50行开始执行吗?如果是,cadence内部正在发生什么神奇的事情?
@Override
public String composeGreeting(String greeting, String name) throws Exception {
FileWriter fw =
new FileWriter(
"/Users/kumble-004/Documents/Uber_Cadence/Sample_Projects/TestCadence/src/com/company/"+name+".txt");
System.out.println(
DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss").format(LocalDateTime.now())
+ " [Activity] started");
long time = System.currentTimeMillis() + 240000;
int i = 0, j=1;
while (System.currentTimeMillis() != time) {
if(i++ %10000000 == 0) {
fw.write("print - " + j++ + " " +
DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss").format(LocalDateTime.now()) +"\n");
}
}
fw.close();
System.out.println(
DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss").format(LocalDateTime.now())
+ " [Activity] ended");
return greeting + " " + name + "!";
}
}
我的hello活动中有上面的代码。此代码将运行4分钟,当条件满足时,它将在文件中写入数据
我启动了一个工作流,并在打印[活动]开始
后退出了节奏服务器。我没有启动它只是停止了它。但4分钟后,它正好打印[活动]在
控制台中结束。我想知道这怎么可能,因为我停止了服务器,但代码正在执行,数据正在写入文件。
当我通过节奏用户界面检查它时,它显示最后的历史记录是ActivityTaskStarted
。我启动了我的服务器。15分钟后(因为计划是15分钟)活动返回事件ActivityTaskTimedOut
,由于超时,整个whorkflow都失败了。
请解释重新启动节奏服务器时发生了什么?
如果应用服务器在执行activity2中的第50行代码时重启,它会从第50行开始执行吗
不,它不会从第50行自动恢复。
重放仅发生在工作流中。它依靠历史来重放和重建内存堆栈。工作流中发生的所有事情都存储在历史记录中:
有关更多详细信息,请参阅有关重播历史记录的文档,以及什么是节奏决策任务?
但4分钟后,它正在打印[活动]在控制台中结束。我想知道这怎么可能,因为我停止了服务器,但代码正在执行,数据正在写入文件。
那是因为你的活动工作者还在运行。您运行的代码纯粹是活动代码。
但是,当服务器关闭时,它活动结果将无法报告给服务器。这意味着历史记录将丢失它,工作流可能会重新安排另一个活动(如果启用重试)。
请参考关于活动超时的文档,然后重试
我的案例是批准、拒绝或返回我的请求,并基于该工作流更改其状态。candence如何帮助保存/检索每个工作流的所有操作历史。
每个工作流都应在单独的工作流类中实现? 是否建议实现一个通用工作流类,在该类中,我们将使用传递给工作流的参数调用活动和触发计时器? 在我们的用例中,我们将从UI创建工作流,它将由最终用户创建。所以我们不能一开始就定义我们的工作流程。 这是推荐的方法吗?
可以运行不需要连接到cadence服务器的本地活动。是否有适当的方式在本地运行工作流,以防发生cadence中断?我正在使用Go客户端。
我想在普罗米修斯监控当前运行的节奏工作流的数量。 我检查了由不同的cadence服务(如< code>cadence_history 、< code>cadence_worker 、< code>cadence_frontend等)导出的指标,我能找到的唯一与工作流相关的指标是: ( 函数收集正在运行的工作流数量。然而,cadence文档说“大量使用这个API可能会导致巨大的持久性压力”,所以我认
主要内容:人工智能的成熟(1943-1952),人工智能的诞生(1952-1956),黄金岁月 - 早期的热情(1956-1974),第一个AI寒冬(1974-1980),AI的热潮(1980-1987),第二次AI寒冬(1987-1993),智能代理的出现(1993-2011),深度学习,大数据和人工智能(2011年至今),以下是纠正/补充内容:人工智能不是一个新词,也不是研究人员的新技术。这项技术比想象的要老很多。甚至在古希腊和埃及神话中也有机械人的神话。以下是AI历史上的一些里程碑,它定义
temporal.io如何与cadenceworkflow.io?如果根据节奏工作流服务启动一个新项目,应该使用什么?