temporal.io 与 cadenceworkflow.io 有什么关系?如果根据节奏工作流服务启动一个新项目应该使用什么?
所以有这么多的超时值:
对于当地活动:
对于无需重试的常规活动:
然后retryOptions中有更多值:
retryOptions 可以应用于 localActivity 或常规活动。
我如何将它们一起使用,有何期望?
当像文档建议那样使用信号时:
public class MyWorkflow{
public Output myWorkflwMethod(Input input){
...
}
public void mySignalMethod(request){
// do actual processing here.
...
}
}
Run Code Online (Sandbox Code Playgroud)
我可能会遇到以下问题:
我正在尝试使用 Uber Cadence 了解子工作流的用例。与简单地将您的工作流程拆分为多个功能相比,子工作流程的优势是什么?我有一个相当复杂的工作流程,我正在考虑将其拆分为多个子工作流程,但我不确定这样做的利弊。
在 Cadence/Temporal 工作流程编程中:
Async.procedure或创建,Async.function而在Golang中,线程必须通过 创建workflow.Go。所以为什么?Hashtableor来代替线程安全?ConcurrentHashMapHashMap在我们的节奏工作流中,我们通常需要等待一定的时间才能继续外部事件(即电子邮件阅读、链接点击等)。
我想知道将这些事件通知我们的工作流程的最佳方式是什么。信号是正确的方式,还是我们应该创建一个等待事件的活动?
从我所见,我们需要创建一个信号通道ch := workflow.GetSignalChannel(ctx, SignalName),但是上下文在活动中不可用。
为什么我们需要像 Uber 的 Cadence、Camunda 或 Activiti 这样的特殊软件?如果它只是一系列任务,那为什么我们不能直接编码呢?我试图阅读 Camunda 和 Cadence 的文档,但无法深入了解。我公司想用。考虑过它的高级开发人员无法/似乎不会解释为什么或在哪里使用它。
而且我发现他们设置工作流程的代码/方式非常不直观。有人请帮忙。
该项目是使用 Java 和 Spring Boot 开发的。
ActivityOptions 中有四个不同的超时选项,其中两个是强制的,没有任何默认值:ScheduleToStartTimeout和StartToCloseTimeout。
选择这些超时值时应考虑哪些因素?
在关于工作流程重置的设计中我应该考虑什么?
活动任务很容易理解,因为它正在执行一个活动……但什么是决策任务?工作人员是否从一开始(使用已完成活动的记录)贯穿整个工作流程,直到它遇到下一个需要做的“有意义”的事情,同时对接下来需要做的事情做出“决定”?