Мне было интересно, есть ли какой-либо SWF-пример рабочего кода C# для AWS .NET SDK?Amazon AWS Simple Workflow Service SWF C# Образец
AWS Форум Сообщение: https://forums.aws.amazon.com/thread.jspa?threadID=122216&tstart=0
Мне было интересно, есть ли какой-либо SWF-пример рабочего кода C# для AWS .NET SDK?Amazon AWS Simple Workflow Service 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.