CREW-GO https://github.com/aaronblondeau/crew-go是一个开源项目,我创建了该项目,以帮助填补现有的背景任务处理工具之间的空白。我创建了船员,因为我需要一种工具,使与Facebook Marketing API合作变得更加容易。 Facebook Marketing API的工作非常具有挑战性,因为:
- 它定期崩溃
- 如果没有崩溃,它正在扔随机错误
- 它具有积极的利率限制
- 它需要复杂的调用序列来创建广告
在这套挑战下,我发现很难找到一种使果园可靠地构建广告的工具。那里有很多很棒的背景任务经理,例如BullMQ,Celery和Temporal。但是,它们都不适合我的用例,因为我需要以下功能:
- 复杂的父母 /子任务结构(定向无环图)< / li>
- 当速率限制错误发生时,请停止并恢复任务组。
- 连续(任务可以创建子任务)
- 延迟,计划的任务
- 可以通过自动暂停同一工作组中的所有任务来管理费率限制错误
- 避免冗余任务
- 工人可以用任何语言书写 - 所有工人都是Webhooks。
- 提供了使手动干预简单的用户界面
- 易于自定义
- 易于主机 - 可以编译为单个.exe。
Crew-Go是通过GO实施的,这是我首次尝试构建大规模GO应用程序。船员已经在Orchard的生产环境中使用了大约6个月,我对它的可靠性和乐趣感到非常满意。我很想与他人分享此工具,获得反馈并进行改进。请尝试一下,让我知道您的想法!