我正在尝试用delayed_job
和HTTParty
来做这件事
HTTParty.delay.get('http://example.com')
它成功地保存到DJ表中,如下所示:
--- !ruby/object:Delayed::PerformableMethod
object: !ruby/object:Module {}
method_name: :get
args:
- http://example.com
问题是它没有在处理程序中提到HTTParty
,所以当我尝试运行作业时,我得到了这个错误:
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在一起玩得很好呢?
发布于 2011-12-13 05:25:36
将代码包装在一个实例方法中。
示例:
# User.rb model
include HTTParty
# Get a URL
def start_the_party(url)
HTTParty.get(url)
end
handle_asynchronously :start_the_party
然后你只需要在其他地方调用它,就像:
some_user.start_the_party
或者您是否需要访问成功的get请求内容
some_results = some_user.start_the_party
编辑
如果你打算让它成为一个类方法,那么代码将如下所示:
示例:
# 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
然后你只需要在其他地方调用它,就像:
User.start_the_party
或者您是否需要访问成功的get请求内容
some_results = User.start_the_party
不同之处在于User.some_method_name
是在User
模型上调用的,而some_user.some_method_name
是在User
模型的实例(即当前用户对象)上调用的。
https://stackoverflow.com/questions/8480741
复制相似问题