簡體   English   中英

亞馬遜AWS簡單工作流服務SWF C#示例

[英]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;
  }
}

為清楚起見,我省略了其他活動的例子。 Guflow它由文檔教程示例支持

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM