如何在resque worker中使用OAuth :: AccessToken?

时间:2012-08-27 12:05:19

标签: ruby oauth resque

我有一个脚本可以检索一些Twitter用户名,我希望从这些用户那里获得Twitter的更多信息。因为会有很多用户想要使用Resque并行处理它们。

在我的主脚本中,我使用Oauth生成访问令牌,但如何正确地将其传递给工作人员呢?

这是启动工作人员的代码:

work_data = @messages[0...100]
Resque.enqueue(TwitterWorker, work_data, access_token)

access_tokenOAuth::AccessToken

的位置

当我开始工作时,我得到一个错误:

failed: #<NoMethodError: undefined method `request' for "#<OAuth::AccessToken:0x007f8ecb9a7fe8>":String>

所以我猜这个access_token参数没有正确序列化或反序列化。

我可以在工作人员中检索访问令牌,但这似乎是多余的,我也希望它们很快。

1 个答案:

答案 0 :(得分:0)

好的,所以我自己想出来了。我在创建作业之前序列化了令牌,并将串行令牌作为参数传递,然后我将其反序列化为worker。

work_data = @messages[0...100]
serial_token = YAML::dump(access_token)
Resque.enqueue(TwitterWorker, work_data, serial_token)

在我的工作人员中,我只是将其反序列化:

def self.perfom(data, serial_token)
  token = YAML::load(serial_token)
  ....
end