船员
#开源 #go #backenddevelopment

CREW-GO https://github.com/aaronblondeau/crew-go是一个开源项目,我创建了该项目,以帮助填补现有的背景任务处理工具之间的空白。我创建了船员,因为我需要一种工具,使与Facebook Marketing API合作变得更加容易。 Facebook Marketing API的工作非常具有挑战性,因为:

  • 它定期崩溃
  • 如果没有崩溃,它正在扔随机错误
  • 它具有积极的利率限制
  • 它需要复杂的调用序列来创建广告

在这套挑战下,我发现很难找到一种使果园可靠地构建广告的工具。那里有很多很棒的背景任务经理,例如BullMQCeleryTemporal。但是,它们都不适合我的用例,因为我需要以下功能:

  • 复杂的父母 /子任务结构(定向无环图)< / li>
  • 当速率限制错误发生时,请停止并恢复任务组。
  • 连续(任务可以创建子任务)
  • 延迟,计划的任务
  • 可以通过自动暂停同一工作组中的所有任务来管理费率限制错误
  • 避免冗余任务
  • 工人可以用任何语言书写 - 所有工人都是Webhooks。
  • 提供了使手动干预简单的用户界面
  • 易于自定义
  • 易于主机 - 可以编译为单个.exe。

Crew-Go是通过GO实施的,这是我首次尝试构建大规模GO应用程序。船员已经在Orchard的生产环境中使用了大约6个月,我对它的可靠性和乐趣感到非常满意。我很想与他人分享此工具,获得反馈并进行改进。请尝试一下,让我知道您的想法!