首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在delayed_job中使用HTTParty

在delayed_job中使用HTTParty
EN

Stack Overflow用户
提问于 2011-12-13 04:57:47
回答 1查看 735关注 0票数 1

我正在尝试用delayed_jobHTTParty来做这件事

代码语言:javascript
运行
复制
HTTParty.delay.get('http://example.com')

它成功地保存到DJ表中,如下所示:

代码语言:javascript
运行
复制
--- !ruby/object:Delayed::PerformableMethod
object: !ruby/object:Module {}
method_name: :get
args:
- http://example.com

问题是它没有在处理程序中提到HTTParty,所以当我尝试运行作业时,我得到了这个错误:

代码语言:javascript
运行
复制
undefined method `get' for #<Module:0x007fff1095b9a8>

我在一个rails 3.0.6应用中使用了delayed_job (3.0.0.pre)delayed_job_active_record (0.2.1)httparty (0.7.7)

那么我如何才能让delayed_job和HTTParty在一起玩得很好呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-13 05:25:36

将代码包装在一个实例方法中。

示例:

代码语言:javascript
运行
复制
# User.rb model
include HTTParty

# Get a URL
def start_the_party(url)
  HTTParty.get(url)
end
handle_asynchronously :start_the_party

然后你只需要在其他地方调用它,就像:

代码语言:javascript
运行
复制
some_user.start_the_party

或者您是否需要访问成功的get请求内容

代码语言:javascript
运行
复制
some_results = some_user.start_the_party

编辑

如果你打算让它成为一个类方法,那么代码将如下所示:

示例:

代码语言:javascript
运行
复制
# User.rb model
include HTTParty

# Get a URL
class << self
  def start_the_party(url)
    HTTParty.get(url)
  end
  handle_asynchronously :start_the_party
end

然后你只需要在其他地方调用它,就像:

代码语言:javascript
运行
复制
User.start_the_party

或者您是否需要访问成功的get请求内容

代码语言:javascript
运行
复制
some_results = User.start_the_party

不同之处在于User.some_method_name是在User模型上调用的,而some_user.some_method_name是在User模型的实例(即当前用户对象)上调用的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8480741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档