我正在尝试实现一个永久的工作流,它从阻塞直到消息被传递的活动开始(即Redis的BLPOP
)。一旦完成,我想异步启动一个新的工作流来进行某种处理并立即返回ContinueAsNew
。
我尝试使用子工作流启动处理工作流。我观察到,我的父工作流在子工作流执行之前完成。除非我处理返回的未来,但我真的不想这样做。
正确的方法是什么?是否可以在工作流中启动新的常规工作流?此类操作是作为工作流的一部分还是在活动中实现?
提前谢谢你!
解决方案是等待子工作流启动,然后完成或作为新的父工作流继续。
如果您使用Go Cadence客户端,则< code >工作流。ExecuteChildWorkflow返回ChildWorkflowFuture,它扩展了返回子工作流结果的< code>Future。它还具有GetChildWorkflowExectution方法,该方法返回一个< code>Future,一旦子进程启动,该方法就准备就绪。因此,要等待子工作流启动,可以使用以下代码:
f := workflow.ExecuteChildWorklfow(ctx, childFunc)
var childWE WorkflowExecution
// The following line unblocks as soon as the child is started.
if err := f.GetChildWorkflowExecution().Get(&childWE); err != nil {
return err
}
子工作流已开始,工作流ID在< code>childWE中找到。ID并在< code>childWE中运行ID。RunID
爪哇的对应物是:
ChildType child = Workflow.newChildWorkflowStub(ChildType.class);
// result promise becomes ready when the child completes
Promise<String> result = Async.function(child::executeMethod);
// childWE promise becomes ready as soon as the child is started
Promise<WorkflowExecution> childWE = Workflow.getWorkflowExecution(child);
问题内容: 我一直在阅读JLS,并且遇到了11.1.3节。我引用的异步异常是: 大多数异常是由于它们所发生的线程的操作而同步发生的,并且在程序中被指定为可能导致此类异常的某个点处发生。相反,异步异常是在程序执行的任何时候都可能发生的异常。 和 异步异常仅由于以下原因而发生: […] * Java虚拟机中的内部错误或资源限制,阻止其实现Java编程语言的语义。在这种情况下,引发的异步异常是Virtu
异步注解@Async,默认情况下是不生效的,需要的话可以启用. 该加载器有一个可选参数,线程池大小,默认是32,详情可以查阅org.nutz.aop.interceptor.async.AsyncAopIocLoader @IocBy( args={"*json","ioc/", "*anno","net.wendal.nutzbook", "*a
Node 库以多种方式处理异步功能。最常见的模式是 error-first callbacks,但是你还可能会遇到 streams、promises、event emitters、child processes, 或 observables。gulp 任务(task)规范化了所有这些类型的异步功能。 任务(task)完成通知 当从任务(task)中返回 stream、promise、event e
问题内容: 如果我做 是一样的吗 ? 我想要我所有的东西,就像在8023端口上监听一样。 问题答案: 不,您需要将nohup分别添加到命令中。 建议这样的事情: 或者:
我最近读到了Node的“worker_threads”模块,该模块允许在多个线程中并行执行Javascript代码,这对于CPU密集型操作非常有用。(注意:这些不是Chrome在浏览器中制作的web Worker) 我正在构建一个功能,我需要在不阻塞浏览器的情况下执行大量的Postgres INSERT。 问题是:在我实例化worker的Javascript文件中,不允许导入任何内容,包括本机节点
问题内容: 假设我有这段代码 我想知道的是该函数是否将异步执行。 问题答案: 设完成为Call(执行者,未定义,«resolvingFunctions。[[Resolve]],resolvingFunctions。[[Reject]]»)。 如果完成是突然完成,则 令status为Call(resolvevingFunctions。[[Reject]],undefined,«completion。