我想知道是否有任何SWF工作流C#示例代碼可用於AWS .NET SDK?亞馬遜AWS簡單工作流服務SWF C#示例
AWS論壇帖子:https://forums.aws.amazon.com/thread.jspa?threadID=122216&tstart=0
我想知道是否有任何SWF工作流C#示例代碼可用於AWS .NET SDK?亞馬遜AWS簡單工作流服務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支持documentation,tutorial和samples。