问题标签 [amazon-swf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
305 浏览

amazon-web-services - AWS SWF createTimer 承诺不返回

我想要一个循环,在每次迭代后等待一段时间。我正在尝试使用计时器进行等待,但计时器永远不会返回,所以下面的代码只运行一次,然后永远等待。当我删除计时器条件时,代码成功执行。没有错误,它只是等待......

任何帮助表示赞赏!

0 投票
1 回答
822 浏览

amazon-web-services - AWS SWF 活动中的循环中断

我在 SWF 活动中运行永久循环。就像一个网络爬虫爬取网站 www.example1.com 一样。但是,我不想等到它完成爬网,但在某些时候我想终止活动并将其切换到爬网网站 www.example2.com。

我尝试通过工作流 id 使用“尝试取消”、“终止”、工作流。似乎它只是向 SWF 发送信号以指示 AWS 控制台中的任务已完成,但 worker 上的 Activity 进程仍在运行。

有什么解决办法吗?

0 投票
1 回答
302 浏览

ruby - 亚马逊 AWS SWF 等待信号

我正在构建一个在某些时候需要用户干预的流程。我已通读文档,发现我应该使用 SWF 信号继续通过我的流程。

我想知道是否有办法让流程等待没有计时器的信号。

当我使用

我的“activity_one”运行正常,无论我的信号是否在 30 秒内收到,我的工作流程执行完成。但是如果我尝试运行

我的 activity_one 永远不会运行,它会一直循环执行“wait_for_any”的决策任务

有什么办法可以让它一直挂在进程上,直到收到信号?

0 投票
1 回答
1138 浏览

amazon-web-services - 如何启动/取消简单工作流服务计时器?

我有一个要求,我需要在 x 分钟后调用 SWF 中的活动。为此,我计划在 SWF 中启动一个计时器(x 分钟),并在计时器触发时调用该活动。我可以获得有关如何在 SWF 中启动计时器的指针吗?另一个要求是我可能有时也必须取消计时器,以防我不需要等待完整的持续时间。有什么可以取消 SWF 中的启动计时器吗?有人可以指出我需要的 API 吗?

谢谢!

0 投票
1 回答
258 浏览

amazon-web-services - AWS SWF:在不同的服务器上运行活动

我有一个在 2 个服务器上运行 >3 个活动的工作流,但我希望其中一个活动在第三个专用服务器上运行,即该服务器应该只执行活动 x 而不是整个工作流。到目前为止(以我有限的知识),我可以在活动中进行服务调用以在专用服务器上执行流程,然后在完成后接收回调,但我觉得必须有一种更简单的方法。

有没有人试过这个?

0 投票
1 回答
292 浏览

amazon-emr - Trouble in using AWS SWF

I am new to Amazon simple workflow service. Is there a way to run the swf workflows on EMR. I have AWS CLI setup and able to bootstrap hadoop and bring up the cluster. I have not found enough documentation on this and no source on the web. Is there any change that I can boot the EMR cluster using SWF instead of AWS CLI. Thanks.

0 投票
2 回答
1165 浏览

java - 活动的单独任务列表 - AWS SWF

我有一个用例,我希望系统中有 10 个工作线程。其中,6 个工作线程应该轮询一个任务列表,4 个工作线程应该轮询另一个任务列表。

我在 Flow Framework 上以这种方式配置了我的代码。

我的一项活动已注册到不同的任务列表。所有其他活动到默认任务列表。我有 6 个工作线程正在侦听默认任务列表,其余四个正在侦听其他任务列表。

但是,当我执行工作流程时,出现错误:

任务列表名称:CIMSProposalActivityValidationTList

身份:29547@ccs-master-1001.vdc.xyz.com

细节: ["java.lang.IllegalStateException",{"cause":null,"stackTrace":[{"methodName":"current","fileName":"AsyncContextBase.java","lineNumber":27,"className" :"com.amazonaws.services.simpleworkflow.flow.core.AsyncContextBase","nativeMethod":false},{"methodName":"","fileName":"AsyncContextBase.java","lineNumber":49,"className ":"com.amazonaws.services.simpleworkflow.flow.core.AsyncContextBase","nativeMethod":false},{"methodName":"","fileName":"TryCatchFinallyContext.java","lineNumber":46," className":"com.amazonaws.services.simpleworkflow.flow.core.TryCatchFinallyContext","nativeMethod":false},{"methodName":"","fileName":"TryCatchFinally.java","lineNumber":233,"className":"com.amazonaws.services.simpleworkflow.flow.core.TryCatchFinally","nativeMethod" :false},{"methodName":"","fileName":"TryCatch.java","lineNumber":22,"className":"com.amazonaws.services.simpleworkflow.flow.core.TryCatch","nativeMethod ":false},{"methodName":"","fileName":"GrooveScheduleAspect.java","lineNumber":93,"className":"com.amazon.transportation.groove.aspectj.GrooveScheduleAspect$1","nativeMethod ":false},{"methodName":"processGrooveSchedule","fileName":"GrooveScheduleAspect.java","lineNumber":93,"className":"com.amazon.transportation.groove.aspectj.GrooveScheduleAspect","nativeMethod":false},{"methodName":"validate","fileName":"ValidationActivitiesImpl.java", "lineNumber":23,"className":"com.amazon.cimsworkflow.activities.impl.ValidationActivitiesImpl","nativeMethod":false},{"methodName":"invoke0","fileName":"NativeMethodAccessorImpl.java", "lineNumber":-2,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":true},{"methodName":"invoke","fileName":"NativeMethodAccessorImpl.java","lineNumber":57 ,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":false},{"methodName":"invoke","fileName":"DelegatingMethodAccessorImpl.java","lineNumber":43,"className":"sun.reflect.DelegatingMethodAccessorImpl","nativeMethod":false} ,{"methodName":"invoke","fileName":"Method.java","lineNumber":606,"className":"java.lang.reflect.Method","nativeMethod":false},{"methodName ":"execute","fileName":"POJOActivityImplementation.java","lineNumber":63,"className":"com.amazonaws.services.simpleworkflow.flow.pojo.POJOActivityImplementation","nativeMethod":false},{ "methodName":"execute","fileName":"ActivityImplementationBase.java","lineNumber":46,"className":"com.amazonaws.services.simpleworkflow.flow.generic.ActivityImplementationBase","nativeMethod":false},{"methodName":"execute","fileName":" SynchronousActivityTaskPoller.java","lineNumber":196,"className":"com.amazonaws.services.simpleworkflow.flow.worker.SynchronousActivityTaskPoller","nativeMethod":false},{"methodName":"run","fileName" :"ActivityTaskPoller.java","lineNumber":97,"className":"com.amazonaws.services.simpleworkflow.flow.worker.ActivityTaskPoller$1","nativeMethod":false},{"methodName":"runWorker", "fileName":"ThreadPoolExecutor.java","lineNumber":1145,"className":"java.util.concurrent.ThreadPoolExecutor","nativeMethod":false},{"methodName":"run","fileName":"ThreadPoolExecutor.java","lineNumber":615,"className": "java.util.concurrent.ThreadPoolExecutor$Worker","nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java .lang.Thread","nativeMethod":false}],"message":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","localizedMessage":"尝试在 AsyncScope.doAsync( ) 方法","抑制":["[Ljava.lang.Throwable;",[]]}]"java.util.concurrent.ThreadPoolExecutor","nativeMethod":false},{"methodName":"run","fileName":"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util .concurrent.ThreadPoolExecutor$Worker","nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread ","nativeMethod":false}],"message":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","localizedMessage":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码", "抑制":["[Ljava.lang.Throwable;",[]]}]"java.util.concurrent.ThreadPoolExecutor","nativeMethod":false},{"methodName":"run","fileName":"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util .concurrent.ThreadPoolExecutor$Worker","nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread ","nativeMethod":false}],"message":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","localizedMessage":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码", "抑制":["[Ljava.lang.Throwable;",[]]}],"nativeMethod":false},{"methodName":"run","fileName":"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util.concurrent.ThreadPoolExecutor$Worker"," nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}] ,"message":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","localizedMessage":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","suppressed":["[Ljava. lang.Throwable;",[]]}],"nativeMethod":false},{"methodName":"run","fileName":"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util.concurrent.ThreadPoolExecutor$Worker"," nativeMethod":false},{"methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}] ,"message":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","localizedMessage":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","suppressed":["[Ljava. lang.Throwable;",[]]}]"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util.concurrent.ThreadPoolExecutor$Worker","nativeMethod":false},{"methodName":"run","fileName":"Thread .java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}],"message":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码", "localizedMessage":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","suppressed":["[Ljava.lang.Throwable;",[]]}]"ThreadPoolExecutor.java","lineNumber":615,"className":"java.util.concurrent.ThreadPoolExecutor$Worker","nativeMethod":false},{"methodName":"run","fileName":"Thread .java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}],"message":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码", "localizedMessage":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","suppressed":["[Ljava.lang.Throwable;",[]]}]methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}],"message":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","localizedMessage":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","suppressed":["[Ljava.lang.Throwable;",[] ]}]methodName":"run","fileName":"Thread.java","lineNumber":744,"className":"java.lang.Thread","nativeMethod":false}],"message":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","localizedMessage":"尝试在 AsyncScope.doAsync() 方法之外执行异步代码","suppressed":["[Ljava.lang.Throwable;",[] ]}]尝试在 AsyncScope.doAsync() 方法之外执行异步代码","suppressed":["[Ljava.lang.Throwable;",[]]}]尝试在 AsyncScope.doAsync() 方法之外执行异步代码","suppressed":["[Ljava.lang.Throwable;",[]]}]

原因

  • 尝试在 AsyncScope.doAsync() 方法之外执行异步代码

我的任务列表是我创建的新列表。线程也符合预期。但我收到了这个错误。有关如何解决此问题的任何线索。请回复

0 投票
1 回答
513 浏览

amazon-swf - 用于 Pig 脚本的 Amazon SWF 与 Data Pipeline

您好,我想在 Amazon EMR 上运行一个每日数据导入猪脚本。我应该使用简单工作流还是数据管道来安排和监控作业?我尝试通过数据管道,但它似乎需要一个输出。如果我正在运行自定义猪脚本,这个输出会进入什么?他们是否希望您为数据导入任务/作业使用默认的预制猪脚本?

在我的例子中,我有一个猪脚本,它从 S3 输入中获取并执行一些数据转换,然后推送到 dynamodb。试图在数据管道中安排这个猪脚本,我看到有一个猪活动类型和一个 s3 到 dynamodb 模板,但我不知道如何自定义/修改它,以便它运行我的猪脚本并在它去之前转换数据发电机分贝。这个过程中s3和dynamodb映射设置在哪里?由于 pig 脚本从 s3 导入并单独导出到 dynamodb,这是否是多余的?

0 投票
1 回答
454 浏览

amazon-web-services - 如何使用 AWS java SDK 创建私有子网

我可以在我的 vpc 中创建一个子网。但是,它是一个公共子网。但是,我想创建一个与我的 VPC 关联的私有子网。我怎么能做到这一点。谢谢。

私有静态子网 createSubnet(AmazonEC2 ec2, String vpcId, String az, String subnetACidrBlock)

}

0 投票
1 回答
503 浏览

amazon-web-services - 使用 AWS SWF 在分布式架构中进行活动管理

我有两台服务器(EC2 实例)。在一台服务器(服务器 1)上,我有 3 个批次,而在另一台服务器(服务器 2)上,我有 4 个批次。现在,服务器 2 中的一个批处理只需要在服务器 1 中的批处理成功执行后执行。

更新

任何服务器中的任何活动都可以引发任何自定义异常。但是服务器中任何活动的执行不应该因为另一个服务器中的活动抛出异常而被取消。仅当它自己的服务器中的某个活动引发任何异常时,才应取消服务器中的活动。(如果依赖的活动失败或抛出任何异常,则无论服务器如何,依赖的活动也应该被取消)。为此,我所做的是将它包装到两个单独的 try catch 块中。

如果服务器 1 和服务器 2 的活动都抛出任何异常或失败,如何终止工作流执行?