我们希望异步调用一个长时间运行的活动,并且在一段时间后基于外部信号,想要取消该长时间运行的活动。
Async.procedure(activities::longRunningActivity)
// Execute some synchronous activities
Workflow.await(() -> !messageQueue.isEmpty());
if (messageQueue.remove(0) == "something") {
// Cancel longRunningActivity
}
目前,活动了解取消的唯一方式是通过心跳。确保您的活动心跳,并且不吞下心跳方法抛出的异常。
使用取消范围:
CancellationScope longRunningCancellationScope =
Workflow.newCancellationScope(
() -> Async.procedure(activities::longRunningActivity));
longRunningCancellationScope.run();
// Execute some synchronous activities
Workflow.await(() -> !messageQueue.isEmpty());
if (messageQueue.remove(0) == "something") {
longRunningCancellationScope.cancel();
}
假设我们需要向用户发送电子邮件并等待用户回复,然后继续执行工作流。我们是否应该创建一个异步活动来发送电子邮件,并在回复电子邮件到来时完成活动?或者我们是否应该创建一个正常活动来发送电子邮件,然后工作流等待信号,当回复电子邮件到来时,我们将信号发送到工作流?这两个选项是等效的吗?或者有一些差异可以用来决定哪一个用于不同的活动? 提前致谢
我有一个Kafka分区,和一个parkStreaming应用程序。一个服务器有10个内核。当火花流从Kafka收到一条消息时,后续过程将需要5秒钟(这是我的代码)。所以我发现火花流读取Kafka消息很慢,我猜当火花读出一条消息时,它会等到消息被处理,所以读取和处理是同步的。我想知道我可以异步读取火花吗?这样从Kafka读取的数据就不会被后续处理拖动。然后火花会很快消耗来自Kafka的数据。然后我可
基本上,当工作流退出时(尤其是在我们不想在所有错误返回中重复调用ActivityCleanupError的错误情况下),我们都要执行catchall活动ActivityCleanupNoError和ActivityCLanupError。 这是否适用于分布式决策?例如,如果工作流决策的所有权从一个工作人员转移到另一个工作人员,是否会触发对原始工作人员的延迟? 额外的问题:日志记录器在每次工作流运行
我看到ccence cli支持cli的上述命令interface.How通过java执行此操作sdk.Im看到仅支持启动工作流。
考虑以下情况: 当用户导航到页面时,将调度两个异步Redux操作以并行获取两组相关数据。如果这些获取中的任何一个失败,组件将检测到它,它将在下一个周期中呈现错误组件,而下一个周期又在装载时分派操作。 但是,其他行动仍有待解决/拒绝,将破坏清洁状态。目标是在调用action creator时,中断此(最好是许多其他)挂起的异步操作。好吧,不管发生什么,未决promise都应该以任何方式解决/回应。
我正在写一个使用cadence工作流的项目(cadence客户端3.6.2)。我在2018年观看了maxim fateev的一篇演讲,其中提到cadence的工作流是虚拟对象,最好不要将其视为具有起点和终点的过程,因为它们可以始终处于活动状态。 这部分代码来自 https://cadenceworkflow.io/docs/concepts/workflows/#example 在实现工作流时,它