【问题标题】:AWS SWF: Get worker identity in workflow implementationAWS SWF:在工作流程实施中获取工作人员身份
【发布时间】:2014-11-17 09:25:50
【问题描述】:

我正在使用适用于 Java 的 AWS SWF Flow 框架,我想在 worker 中注入一个 Logentries Logger,以便轻松监控它们。

现在我在每个 Workflow 实现中实例化一个 Logback 记录器实例,并赋予它实现标识。但是,我也想知道实现是在哪个工作人员上运行的。

public class CopyWorkflowImpl implements CopyWorkflow {
private Logger log; 
private CopyActivitiesClient operations = new CopyActivitiesClientImpl();

public CopyWorkflowImpl(){
    //TODO: somehow get worker ID ?
    log = LoggerFactory.getLogger("CopyWorkflowWorker");
}

我可以看到 WorkflowWorker 类有一个 getIdentity 方法,但是,我似乎无法在 Workflow 实现中访问它。您对我如何实现这一目标有任何想法吗?

【问题讨论】:

  • 您想获取在工作流执行中实际在工作流上工作的工作流工作者的 ID?或者您想在工作流执行期间获得workflowExecutionIdrunId?您在这里的工作流范围内,而不是实际的工作流工作者。
  • 我想获取在工作流执行中实际在工作流上工作的工作流工作者的 ID。我知道范围是不同的,但我认为也许有一种聪明的方法可以得到它。

标签: java amazon-web-services amazon-swf


【解决方案1】:

我认为您尝试做的事情是不可能的,我认为这是设计使然。在工作流的上下文中,哪个特定工作人员接手任务并不重要,因为一个任务列表上的所有工作人员应该表现相同。在工作流之外,您可以在ActivityTaskStartedEventAttributes 中找到它。

【讨论】:

  • 我知道你的意思。出于调试目的,我更需要它,但没有它我几乎可以生活。感谢您提供外部工作流程提示。
猜你喜欢
  • 1970-01-01
  • 2012-12-13
  • 2019-06-25
  • 1970-01-01
  • 2018-03-20
  • 1970-01-01
  • 2015-05-23
  • 2018-01-06
  • 2015-03-17
相关资源
最近更新 更多