完善后的代码
require 'open-url'
require 'nokogiri'
class Facebook
def self.query_likes
puts 'this is run time => ' + Time.now.to_s
begin
url = "http://api.facebook.com/method/fql.query?query='select like_count from XXX where url = XXX/XX/$S'"
Dialog.order("id desc").each do |d|
path = url.gsub("$S",d.id.to_s)
open(path) do |f|
tparse = Nokogiri::XML(f)
d.likes = tparse.css("like_count").text.to_i
d.save
end
rescue => err
puts err
end
end
end
测试代码
require 'spec_helper'
describe Facebook do
before do
添加数据
end
#使用mock进行假数据封装
it "Facebook to get likes" do
url = "https://api.facebook........."#定义open的url
Facebook.should_receive(:open).with(url.gsub("$S",@dialog.id.to_s)).orderd.and_yield("<xml><like_count>10</like_count></xml>")#封装open的返回对象
Facebook.query_likes #调用测试方法
@dialog,reload.likes.should == 10 #判断测试值
end
end
写完后,可以在命令行里执行测试命令了 rspec spec/models/facebook_spec.rb
如果没有报错的话,这个功能就测试成功了。
下面添加定时
定时采用的是 whenever 插件
安装方法请参考http://www.xiaoyangsheng.com/2011/04/ruby-on-rails%E9%87%8C%E7%94%A8whenever-gem%E7%AE%A1%E7%90%86cron%E4%BB%BB%E5%8A%A1/
或者
http://blog.zool.it/posts/Tasks-plug-in-whenever-the-timing-rails
这两个人写的还是比较好的,英文的看不懂 所以,,,啊哈 今天天气真不错。。。
安装成功后 在config目录下 会有一个schedule.rb的文件打开后编辑
every 15.minute do
runner "Facebook.query_likes"
end
将这段代码插入其中
在命令行里执行
whenever --set environment=development --update-crontab
执行后可以使用
crontab -l 查看正在运行的定时器
crontab -r 关闭运行的定时器(这里有个问题,我的定时器关闭后,还一直在执行。正在纠结中,找到原因后在来说明吧)
分享到:
相关推荐
《Ruby on Rails 3.2 Tutorial》是Michael Hartl撰写的一本经典教程,旨在通过实践教学的方式帮助初学者掌握Rails框架。Rails是一个基于Ruby语言的开源Web应用框架,遵循MVC(模型-视图-控制器)架构模式,以其DRY...
### Ruby on Rails与Java框架对比分析 #### 一、引言 随着互联网技术的迅猛发展,Web开发领域也迎来了各种各样的开发框架和技术栈。在众多的开发框架中,Ruby on Rails (RoR) 和 Java 的相关框架尤其受到关注。本文...
Rails 3.2 API 是一个重要的开发资源,主要用于Ruby on Rails框架的开发。Rails是基于Ruby语言的一个开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式,广泛应用于构建动态网站和Web应用程序。Rails ...
Rails 3.2是Ruby on Rails框架的一个重要版本,它对前一版本进行了大量的改进和优化,包括提高了性能、增强了安全性,并引入了一些新的功能。这一版本继续支持Ruby 1.8.7及以上版本,并针对Ruby 1.9.x进行了优化。 ...
### Ubuntu 下 Ruby on Rails 的安装与配置 #### 一、Ruby on Rails 的安装步骤 **1.1 系统环境准备** 确保您的 Ubuntu 系统已更新至最新状态。这一步很重要,因为新版本通常会修复旧版本中存在的问题,包括安全...
### Ruby on Rails:背后的秘密与优势 #### 一、引言 《Ruby on Rails的秘密》是一份关于Ruby on Rails框架的高级介绍资料,由该框架的创始人David Heinemeier Hansson编写。这份资料深入探讨了Rails的核心理念和...
《Ruby.on.Rails.Web开发之旅》,作者:【德】Patrick Lenz,翻译:王德民、刘昕、裴立秋,出版社:人民邮电出版社,ISBN:9787115188526,PDF 格式,大小 144 Mb,被压缩为 3 部分,本资源是第二部分;第一部分下载...
《Ruby.on.Rails.Web开发之旅》,作者:【德】Patrick Lenz,翻译:王德民、刘昕、裴立秋,出版社:人民邮电出版社,ISBN:9787115188526,PDF 格式,大小 144 Mb,被压缩为 3 部分,本资源是第一部分;第二部分下载...
《Ruby.on.Rails.Web开发之旅》,作者:【德】Patrick Lenz,翻译:王德民、刘昕、裴立秋,出版社:人民邮电出版社,ISBN:9787115188526,PDF 格式,大小 144 Mb,被压缩为 3 部分,本资源是第三部分;第一部分下载...
在一个应用程序实例中管理多个网站能够为用户分配不同的角色使用 Ruby on Rails 3.2 构建用于数据库的 MongoDB快速入门已安装并正在运行MongoDB> = 2.0的最新版本。 在Mac OS X上,您可以使用安装Mongodb 然后克隆 ...
Consul是Ruby on Rails的授权解决方案,您在其中描述了可访问的事物集,以控制用户可以查看或编辑的内容。 我们结合使用Consul和来解决从无聊到怪异的各种授权要求。 另请参阅我们的速成班视频:。 Consul已在...
### Ruby on Rails 笔记知识点总结 #### 一、引言 在《Ruby on Rails笔记》中,作者陈刚分享了他在学习Ruby on Rails过程中的经验与心得。这份笔记不仅包含了作者的学习历程和个人体会,还汇集了他在学习过程中遇到...
是法国Ruby on Rails社区网站。 这个Git仓库是railsfrance.org的当前Rails应用程序。 安装 railsfrance.org建立在Rails 3.2的顶部。 先决条件 sudo aptitude install redis-server sudo aptitude install ...
找火车站 演示: ... Ruby on Rails 3.2 来自 HTML 5 的地理定位 地理位置搜索 MongoDB 2.4 反馈: 如果您有任何建议或想了解更多信息,请给我发电子邮件 [我的名字]@[我的姓氏].com ~瑞安·马莱基
乌图塞米 为 ActiveRecord 中的列名提供灵活的别名。 安装 在Gemfile添加Gemfile : gem 'utusemi' 通过运行下载并安装: bundle install 用法 在config/initializers创建一个名为...Ruby on Rails 3.2、4.1
- **集成Ruby on Rails支持**:提供Ruby on Rails项目的创建、调试等功能。 - **强大的代码编辑器**:支持语法高亮、代码自动完成等功能。 - **调试工具**:帮助开发者定位和修复代码中的问题。 #### 4.2 使用...
### Ruby on Rails与Java框架对比分析 #### 一、引言 随着软件开发技术的不断发展,各种编程语言和框架层出不穷,旨在提高开发效率并降低维护成本。本文将深入探讨Ruby on Rails这一新兴Web开发框架与Java传统框架...
这个示例将展示如何为Ship和Pilot模型添加验证规则,以及如何在Ruby on Rails应用中有效地处理关联数据。我们将不涉及jQuery,尽管标签中有提及,因为这个部分主要关注Rails的后端逻辑。 首先,理解嵌套表单的概念...
在Ruby on Rails框架中,嵌套表单是一个强大的特性,它允许用户在一次提交操作中创建或更新关联模型之间的多层关系。Rails 3.2引入了许多改进,其中包括对嵌套表单处理的优化,使得开发者能够更方便地构建复杂的Web...