3

Mechanizeを使用して、リクエストを1秒あたり1つに制限する方法を見つける必要があります(または5秒ごとに1つ、または1分ごとに2つなど、ポイントはリクエストを評価する方法を見つけることです)。

検索すると、これが問題への取り組みを開始する方法のようです。接続前/後のフックです。それらをどうするか、どのようにアプローチするかを正確に知らないのは私だけです。私のレベルと調査から、「ちょっと待って」と言うラムダまたはプロシージャを実行する必要があると推測しています。

私の質問は基本的に、これを行う方法の例または別の手がかりです。私はいくつかのラムダを試しました(そして私はこれが正確に何をするかについての理解が低いです):

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

しかし、これは私の要求をエラーに変えるだけです:

ArgumentError: wrong number of arguments (2 for 0)

機械化コードを使い始めても、これまでのところほとんど成果がありません。

任意の入力と学習ガイダンスをいただければ幸いです。

4

3 に答える 3

4

ラムダには2つの引数が必要です。

agent.pre_connect_hooks << lambda do |agent, request|
  sleep 1
end
于 2012-05-14T02:19:19.023 に答える
1

Proc代わりに使用してください:

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

于 2012-02-09T20:58:52.683 に答える
1

Method:を渡すこともできます

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

agent.pre_connect_hooks << method(:my_pre_hook)
于 2012-05-30T10:04:17.877 に答える