提问人:Andreii 提问时间:4/13/2013 最后编辑:TylerHAndreii 更新时间:10/20/2023 访问量:190
业务逻辑的服务器端技术
server side technology for business logic
问:
我想开发一个 Web 应用程序,该应用程序将拥有注册用户并将注册为 twitter 应用程序(允许用户授予其查看其时间线和代表他们发帖的权限)。该应用程序的唯一功能是根据用户的设置和愿望从用户的时间线转发推文。
我知道这个应用程序的网站将在客户端使用 HTML、CSS 和 JS 等常见技术。服务器端(用户定义应用程序应该转发什么样的推文)必须用 PHP/Python/Perl/...基于数据库 MySQL/Postgre/...
我不明白,非常感谢您的帮助,真正的“业务逻辑”将在哪里编码?例如,我应该使用什么技术来编码将位于我的服务器上的功能:每 5 分钟联系一次 Twitter 服务器,读取我拥有的每个用户的时间线,检查是否有值得转发的推文(根据用户的定义),并向 Tweeter 发送必要的命令以代表我的用户转发所选的推文。
对于用户来说,所有这些都将离线发生,并且将是一个持续的循环过程 - 但是我应该使用什么技术来编码它?
答:
0赞
Zachary Kniebel
4/13/2013
#1
我听说过这个用于PHP的API。不过,它实际上是我唯一听说过的PHP产品。我知道有一些很好的 Python 库,但我不知道 Perl。
实际上,我正在开发一个新的 C# API(不太适合您,因为您显然没有使用 Windows Server),并在开发企业 Web 应用程序时开始构建它,该应用程序引发了几个与您自己的问题类似的问题。
这是您将要做的:
- 在开始之前,您必须与 Twitter 的数据合作伙伴之一取得联系(我相信您可以联系 Twitter 以获取参考)
- 这样做的原因是您将需要比您想象的更多的请求
- Twitter 用于 Twitter 记录的速率上限的时间间隔为 900 秒(5 分钟)
- 使用一般速率限制时,如果您每个速率限制仅查询一次用户的时间线,则您将网站上的访问者数量限制为一次 300 人
- 这就是它变得棘手的地方 - 如果每个用户都发布一条推文(意味着你发送推文 - 不受速率限制 - 然后刷新时间线 - 速率限制 - 以便他们可以看到更新的推文),你现在已经将任何给定时间的最大活跃用户数降至 150
- 考虑公司自己的时间线(-1 个访问者),加上打开浏览器的访问者数量(现在你需要更多的逻辑,你必须要么启动它们,要么只是跟踪你不会刷新的时间线),发布多条推文的用户数量(每条推文 -1 个访问者), 等。
- 这个故事的寓意是:联系他们的一个数据合作伙伴,让自己获得无限的请求,或者至少获得足够多的数量来容纳您的访问者/用户数量(加上一些填充)
- 如果您遵守此建议,请跳过步骤 2 和 3,否则,请跳过步骤 4
- (注意:第 2 步和第 3 步仅适用于速率上限的实现)使用所需的语言,创建在服务器上运行的服务,并向 Twitter 进行查询
- 根据你提供的信息,我建议你使用Python来制作这个服务
- 该服务将始终运行,并按照自己的时钟运行,以基于请求之间的 5 分钟间隔
- 您必须使用缓存或数据库系统来存储数据
- (注意:第 2 步和第 3 步仅适用于速率上限的实现)添加必要的代码以向为数据创建的服务发出请求,并每 5 分钟执行一次这些请求
- 我建议用于向服务发出这些请求的时钟比用于服务的时钟晚一点,以解决数据传输缓慢等情况。
- 您还必须在服务上调用一些方法以在队列中添加/删除用户
- (注意:第 4 步仅适用于无限制的请求实现)忘记服务,只需将请求代码直接包含在用户所在的页面中即可。
- 用户的时间线将根据用户访问网站的时间或上次刷新时间线的时间(如果发布了推文)进行更新
- 此实现的唯一警告是,您必须为无限/更大的数据速率限制付费
评论