[英]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.