[英]Amazon AWS Simple Workflow Service SWF C# Sample
我想知道是否有可用于AWS .NET SDK的SWF工作流程C#示例代码?
AWS论坛帖子: https : //forums.aws.amazon.com/thread.jspa? threadID = 122216 & tstart = 0
作为熟悉SWF的一部分,我最终编写了一个常见的案例库,我希望其他人也可以使用它。 它被称为SimpleWorkflowFramework.NET,可在https://github.com/sdebnath/SimpleWorkflowFramework.NET上以开源形式获得。 它绝对可以使用很多帮助,所以如果你有兴趣,请直接进入! :)
我开发了一个开源.NET库-Guflow来编写 Amazon SWF。 您可以通过以下方式编写工作流以对视频进行转码:
[WorkflowDescription("1.0")]
public class TranscodeWorkflow : Workflow
{
public TranscodeWorkflow()
{
//DownloadActivity is the startup activity and will be scheduled when workflow is started.
ScheduleActivity<DownloadActivity>().OnFailure(Reschedule);
//After DownloadActivity is completed TranscodeActivity activity will be scheduled.
ScheduleActivity<TranscodeActivity>().AfterActivity<DownloadActivity>()
.WithInput(a => new {InputFile = ParentResult(a).DownloadedFile, Format = "MP4"})
ScheduleActivity<UploadToS3Activity>().AfterActivity<TranscodeActivity>()
.WithInput(a => new {InputFile = ParentResult(a).TranscodedFile});
ScheduleActivity<SendConfirmationActivity>().AfterActivity<UploadToS3Activity>();
}
private static dynamic ParentResult(IActivityItem a) => a.ParentActivity().Result();
}
在上面的示例中,为了清楚起见,我遗漏了任务路由。 以下是创建活动的方法:
[ActivityDescription("1.0")]
public class DownloadActivity : Activity
{
//It supports both sync/async method.
[ActivityMethod]
public async Task<Response> Execute(string input)
{
//simulate downloading of file
await Task.Delay(10);
return new Response() { DownloadedFile = "downloaded path", PollingQueue = PollingQueue.Download};
}
public class Response
{
public string DownloadedFile;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.