我有一个脚本可以检索一些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参数没有正确序列化或反序列化。
我可以在工作人员中检索访问令牌,但这似乎是多余的,我也希望它们很快。
答案 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