5

Mechanize インスタンスが API に接続する頻度を調整する必要がある (2 秒に 1 回なので、接続をそれ以上に制限する)

したがって、この:

instance.pre_connect_hooks << Proc.new { sleep 2 }

私はこれがうまくいくと思っていましたが、そのクラスのすべてのメソッドが 2 秒間スリープするようになりました。接続後のフックを試してみますが、もう少し精巧なものが必要であることは明らかですが、現時点ではわかりません。

コードはより詳細な説明なので、興味がある場合はhttps://github.com/blueblank/reddit_modbotに従ってください。それ以外の場合、私の質問は、Mechanize インスタンスを API で指定された特定の時間枠内に効率的かつ効果的にレート制限する方法に関するものです (ここでその制限を超えると、リクエストや禁止が破棄されます)。また、機械化インスタンスを自分のクラスにもより適切に統合する必要があると思います。そのポインタも高く評価されています。

4

2 に答える 2

2

接続前と接続後のフックはすべての接続で呼び出されるため、リダイレクトがあると、1回のリクエストで何度もトリガーされる可能性があります。一度だけ呼び出されるhistory_addedを試してください。

instance.history_added = Proc.new {sleep 2}
于 2012-02-12T06:50:33.673 に答える
1

SlowWebを使用して、特定の URL への通話をレート制限しています。

require 'slowweb'
SlowWeb.limit('example.com', 10, 60)

この場合、example.com ドメインへの呼び出しは 60 秒ごとに 10 リクエストに制限されます。

于 2012-05-09T05:41:27.177 に答える