我们正在维护几个Rails应用程序,这些应用程序都带来类似的问题,因此我们没有一个很好的解决方案:所有这些应用程序都包含需要对外部进行API调用的模型服务在他们的生命周期中。在回调中组织API调用
可能的情况:
- 用户正在更新
- 产品后更新订阅电子报订户名单,成功创建
- 价格的报价与外部的购物系统是同步的,当添加这些CAL:在搜索指数更新
我们exprienced什么不是一个很好的解决方案后, ls到该模型的after_*
回调。由于这个测试速度很快,所以现在所有的工厂都必须处理API调用。
我正在寻找组织这些API调用的好方法。你们如何做到这一点?我们想出了
的想法,我认为不是真正的理想:
- 移动这些回调到控制器。现在,他们很容易被遗忘,当创建一个对象
- 产生一个异步工作者来处理API调用。然后,每一个甚至是小应用程序都需要延迟工作队列的开销,比如sidekiq。