【问题标题】:Architecture/Design challenge: Consuming Social Media APIs架构/设计挑战:使用社交媒体 API
【发布时间】:2013-02-18 05:26:43
【问题描述】:

我们一直在开发基于社交媒体的 Rails 应用程序,它可以挖掘各种服务的数据,例如 twitter、facebook、linkedin 等等。 我们在使用这些服务时面临着严重的性能问题。

例如, 我们正在访问 Twitter user_timeline 以准备一些统计数据。 由于 twitter 强加了limitation on number of tweets can be fetched,我们必须使用分页来获取所有推文,这会导致多个 API 调用和阻塞 IO。 因此,用户必须等待很多秒,这是不可接受的用户体验。

我们是 Ruby/Rails 的新手,需要正确地架构/设计使用此类 API(Facebook、LinkedIn)的建议。请帮助我们。

更新 我们一直在探索 ruby​​(delayed_job, eventmachine) 和非 ruby​​(node.js) 解决方案。

【问题讨论】:

    标签: ruby-on-rails node.js architecture soa saas


    【解决方案1】:

    通常在 Rails 世界中,如上所述的登录运行进程是通过后台服务完成的。

    后台服务就像 Java 中的线程。你的工作流程是

    1. 用户访问网页
    2. 用户点击查看推文按钮(这将触发提取 通过 twitter api 获取数据)
    3. 推文提取作为后台进程启动
    4. 页面将加载,无需等待 api 提取完成

    还有几个后台进程gem delayed_job,或者sidekiq

    【讨论】:

    • 我们使用delayed_job 发送电子邮件。社交 API 需要 OAuth。 delay_job 能很好地工作吗?
    • 是的,因为delayed_job 将在后台运行任何进程,无论是邮件发送还是API 处理。我个人在一些txt文件生成过程中使用了delayed_job :)
    猜你喜欢
    • 2021-07-19
    • 2011-01-24
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 2020-01-22
    • 2016-05-11
    • 2014-10-12
    相关资源
    最近更新 更多