0

我有一个脚本可以检索一些 twitter 用户名,我想从 twitter 中为这些用户获取更多信息。因为会有很多用户,所以我想使用 Resque 并行处理它们。

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

这是启动工人的代码:

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

access_token一个在哪里OAuth::AccessToken

当我启动工人时,我收到如下错误:

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

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

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

4

1 回答 1

0

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

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
于 2012-08-27T12:27:38.267 回答