BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

亚马逊推出Simple Workflow Service手册

| 作者 Boris Lublinsky 关注 1 他的粉丝 ,译者 薄海 关注 0 他的粉丝 发布于 2013年1月26日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

亚马逊刚刚发布了一份白皮书与代码示例,其中包含了Amazon Simple Workflow Service手册

Amazon Simple Workflow Service(SWF)是

……面向创造可扩展、弹性应用的工作流服务。不论是金融或者保险应用中的业务流程自动化,构建复杂的数据分析应用,还是管理云基础设施的服务,亚马逊SWF能可靠地协调应用中的每个处理步骤。

SWF的最大优点在于,它是完全管理的服务,用户不需要在硬件或管理维护上进行任何额外的投资,即,不需要进行调优、打补丁或升级。它提供了简单的API,并允许在EC2或任何联网的计算机上执行工作流步骤。SWF基于轮询(Polling)实现,因此运行在内部(企业内部)的程序可以向SWF轮询以获取新的任务。最后,AWS 管理控制台还可以为工作流提供当前状态及执行历史的详细报告。

SWF的实现要求给新的/现有的应用增加决策(decider)代码,该代码通过指定工作顺序、分时、故障条件来定义工作流的协作逻辑。另外还需要实现活动(activities),即用来执行工作流每一步的组件。决策程序和活动组成工作流。一旦决策程序和活动就位,SWF服务代表应用协调所有工作。

尽管AWS SWF有这些优点,但由于缺乏示例和有关实现的最佳实践,搭建SWF应用并不是件容易事。亚马逊新发布的白皮书填补了这个空白。该白皮书提供大量工作流模式的实施范例,并提供了实现这些模式的代码。白皮书覆盖了如下几类模式和实现的相关信息:

反复执行某一活动,包括:

  • 指定次数循环重复执行某一活动
  • 指定次数递归执行异步活动
  • 在条件满足的情况下递归执行异步活动

同步执行多个活动,包括:

  • 固定数目活动的分支聚合
  • 动态决定活动数目的分支聚合
  • 分裂多个活动并使用第一个完成的活动的执行结果

工作流逻辑的条件执行,包括:

  • 基于条件执行多个活动中的一个活动
  • 基于条件执行一个更大群体中的多个活动

人工完成一个活动任务:人工活动实现

异步执行的异常处理:

  • 处理异步代码(如活动)产生的异常以及通过try/catch/finally清理资源
  • 处理其他异步代码调用另一个异步代码产生的异常

重试执行失败的异步代码:

  • 重试某项活动直到成功,或者重试达到一定的次数
  • 注解一个活动以便框架可以通过使用时间递增重试策略进行自动重试,即,每次重试间隔增长,在达到指定值后停止
  • 通过RetryDecorator类实现时间递增重试,即在运行时指定重试策略,也可按需修改
  • 通过AsyncRetryingExecutor类实现指数重试,即允许运行时指定重试策略。另外,白皮书还展示了在实现run方法中AsyncRunnable 抽象的用法,即,在每次重试的时候AsyncRetryingExecutor都会要求执行活动。
  • 实现定制的重试策略

工作流的信号传送:实现在执行前等待某一信号一定时间的工作流

新发布的SWF手册为实现新的定制工作流了提供了了一个绝佳的起点。

查看英文原文Amazon Provides Simple Workflow Service Recipes


感谢杨赛对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT