2012-08-27 98 views
0

我有一個腳本檢索一些Twitter用戶名,我想從這些用戶的twitter獲取更多信息。因爲會有很多用戶我想使用Resque並行處理它們。如何在resque worker中使用OAuth :: AccessToken?

在我的主腳本中,我使用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參數沒有被正確地序列化或反序列化。

我可以在工作人員檢索訪問令牌,但似乎是多餘的,我也希望他們快。

回答

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 
相關問題