快速业务通道

利用Grails搭建Feedlr.com网站 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

利用Grails搭建Feedlr.com网站

时间:2011-06-21 infoq 侯雍容

Feedlr:feed驱动的多平台微博客机器人平台

微博客是由Twitter 创造出的一种web 2.0时代的新事物。在微博客上,人们 使用简短的语言随时随地的发表消息,并可以即时地受到好友的消息。由于易用 ,实时等特点,Twitter在06年推 出至今逐步升温,已经拥有超过300万用户。 特别在08年中,Twitter一改起步阶段geek玩具的角色,明显地向主流进化。随 着Twitter的兴 起,也出现了非常多其他的微博客。仅国内就有叽歪、饭否、以 及做啥等等。微博客的兴起提供了一种全新的在线沟通方式。

Twitter作为微博客的 鼻祖和最成功的例子,其优秀的API接口功不可没。通 过Twitter API,开发者们开发出了众多新奇又好用的Twitter第三方应用。我开 发Feedlr的出发点是建立一个让用户可以自行定制feed机器人的服务,核 心功 能类似Twitter上颇受欢迎的twitterfeed,并且可以同时Twitter,叽歪,饭否 以及做啥共4种微博客平台。

通过 Feedlr,用户可以建立微博客广播帐号,来随时追踪自己感兴趣的 RSS/Atom Feed内容。一旦有更新,Feedlr就会自动把新的内容发送到指定的微 博客平台上。Feedlr上线至今,用户们建立了自定义的新闻播报机器 人,DIY的 免费天气预报机器人,不同微博客之间的消息同步机器人,甚至国内地震情况实 时监控机器人等等。而通过国内微博客服务的短信通知服务,以上所有 的Feed 内容国内用户都可以免费在手机上通过短信接收到。

Grails框架的选择

Grails是一个崭露头角的基于 Groovy语言,运行与JVM之上,设计上类似于 Rails的快速web开发框架,在08年初刚推出1.0版。通过Groovy语言和创新的架 构,Grails把成熟的企业级JEE开源组件Spring,Hibernate等巧妙地整合起来, 使用类似Rails的“按约定设计”(design by convention)理念捆绑成一套完整 的web开发框架。JEE开发过程的繁琐被Groovy灵活多变的动态特性和按约定设计 带来的精简配置所取代, 而又保留了企业级组件在稳定和性能方面的优势,可 以说是把Rails式的快速开发带给了水深火热中的JEE开发者们。我来自JEE背景 ,对Groovy语 言也有一定基础,选用Grails搭建Feedlr是比较自然的选择,同 时也是为了在一个没有过多约束的真实项目中体验Grails的完整开发过程。

如何用Grails实现Feedlr的核心功能Feedlr的核心功能

Feedlr的核心功能主要包括定时查询用户提供的feed的更新,把更新的feed 内容发布到微博客,再加上用来增强用户体验的多处AJAX实现以及OpenID登录等 。这里逐一对这些功能的实现做一下介绍。

定时查询feed更新

Feedlr 最核心的功能就是定时轮询用户提交的feed,发现新增的条目,从而 通过微博客API发送到微博上去。只要使用Grails的Quartz插件就可以非常 方便 的实现这一功能。Quartz是一个用途广泛的开源Java库,用于精确地控制定时任 务。由于兼容Unix Cron语法,Quartz的功能非常强大。而在Grails中,Quartz 是框架自带的核心插件之一,通过Quartz插件来执行定时任务非常方便。 新建 一个Quartz定时任务,只需要在Grails项目根目录下执行

grails create-job

根 据提示输入job名称,Grails就会自动在grails-app/jobs/目录下生成一 个新的job程序文件。Grails job都是以XXXJob.groovy命名,存放在grails- app/jobs目录下,Grails启动时会自动遍历jobs目录,定时执行每个定 义好的 job。一个job文件用来定义一种定时执行模式,通过Unix Cron语法来定义定时 逻辑。例如,Feedlr用于轮询feed的job大致是这样的:

class UpdateFeedsJob {   def feedService    def cronExpression = "0 * * * * ?" //每分钟执行一次   def execute() {       feedSe

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号