0

私は AutoIt アプリケーションに取り組んでいますが、今日、あまりにも多くのデータベース読み取りを実行したため、Pushbullet がデータベースからの読み取りをブロックしていることがわかりました。これが実際のエラー メッセージです。

「このアプリでユーザーあたりのデータベース読み取りが多すぎるため、ブロックされました。」

ブロックを解除できるかどうか彼らに連絡しましたが、彼らの返事を待っている間に、何が間違っていたのか知​​りたいです.

新しい通知を見つけて表示したいので、次のコードを使用していました。

$oHTTP = ObjCreate("WinHTTP.WinHTTPRequest.5.1")
$access_token = $PushToken
$oHTTP.Open("Get", "https://api.pushbullet.com/v2/pushes?active=true", False)
$oHTTP.SetCredentials($access_token, "", 0)
$oHTTP.SetRequestHeader("Content-Type", "application/json")
$oHTTP.Send()
$Result = $oHTTP.ResponseText

2 分間のタイマーが設定されていたため、ブロックがトリガーされたと思われますが、DB への要求が多すぎる (ブロックされない) ことなく、この問題に対する正しいアプローチは何ですか?

4

1 に答える 1

1

この質問には適切な回答が得られなかったので。その答えは、非効率的な方法で大量の読み取りを行っているスクリプトを禁止したことです。現在、レート制限が改善されています: https://docs.pushbullet.com/#ratelimitingは、この問題を回避するのに役立ちます。

Pushbullet を効率的に使用するには、ストリーム ( https://docs.pushbullet.com/#stream ) からの tickle メッセージを待ってから、新しいアイテムをフェッチする必要があります ( https://docs.pushbullet.com/#syncing-changes)。最新のプッシュのみを読みたい場合は、より簡単な方法はhttps://api.pushbullet.com/v2/pushes?limit=1を呼び出すことです。

これは小規模なアプリには必要ありませんが、数千人のユーザーがいて、2 分ごとにポーリングしている場合は、合計されます。

于 2015-06-20T17:21:28.057 に答える