2012-02-09 61 views
3

使用機械化,我需要找到一些方法來限制請求每秒1(或每5秒1,或每分鐘2等,點是找到某種方式來評級限制請求)。機械化前/後連接掛鉤

搜索,這似乎是開始處理問題的方式:前/後連接掛鉤。只有我不完全知道如何處理它們或如何處理,我從我的水平和研究中猜測,我需要做一個lambda或proc,說'嘿,等一下',似乎足夠基本。

我的問題基本上是一個例子或另一個線索如何做到這一點。我試了幾個lambda表達式(我在理解究竟是什麼,這將做一個低電平):

@agent.pre_connect_hooks << lambda { |pc| sleep 1 } 

但這只是令我請求錯誤:

ArgumentError: wrong number of arguments (2 for 0) 

甚至已經開始走到目前爲止,通過機械化代碼對我來說收益甚微。

讚賞任何輸入和學習指導。

回答

1

使用Proc代替:

@agent.pre_connect_hooks << Proc.new { sleep 1 }

+0

呀這樣的作品,不知道爲什麼我被困在做一個lambda,但這是一個簡單的開始。 – blueblank 2012-02-09 21:16:47

4

你拉姆達需要2個參數:

agent.pre_connect_hooks << lambda do |agent, request| 
    sleep 1 
end 
1

您也可以通過一個Method

def my_pre_hook(agent, request) 
    # Do fun stuff. 
end 

agent.pre_connect_hooks << method(:my_pre_hook)