私はプルキューをバックエンドで処理していますが、キューが空のときに別のスクリプトをトリガーする必要があります。Google App Engineのタスクキューのフェッチ統計が失敗する
現時点では、キューからタスクをリースするメソッドで非常に粗い検出を使用しています。したがって、返されたタスクリストが空であれば、リースして次のステップをトリガーすることはできません。ただし、ほとんどの場合、これが機能しますが、利用可能なタスクがあるにもかかわらず、リース要求が空のリストを返すように見えることがあります。
とにかく、もっと良い方法は、キューのfetch_statisticsメソッドを使うことです。こうすることで、スクリプトはプルキューで何が起きているのかを監視し、キューに残っているアイテムがなくなったことを知ることができます。今これは明らかにキューのREST APIを介して利用可能ですが、私はこれらを内部的に使用しているときにこれを使用するのは逆のようです。
私はQueue.fetch_statistics()呼び出しを行っていますが、エラーをスローします。私はGoogleに記載されたエラーを入れてみましたが、何も返しません。同じstackoverflowでここに。
それは常にスロー:
AttributeError: type object 'QueueStatistics' has no attribute '_QueueStatistics__TranslateError'
を私のコードは次のとおりです。
q = taskqueue.Queue('reporting-pull')
try:
logging.debug(q.fetch_statistics())
except Exception, e:
logging.exception(e)
誰もがこの上の任意の光を当てることができますか?私はここで本当に馬鹿なことをやっているのですか?
AFAIK [Queue](http://code.google.com/appengine/docs/python/taskqueue/queues.html)にはfetch_statisticsメソッドがありません –
これは確かにコードsdkにありますが、その文書化されていない。これは、REST APIサービス用にJSONifiedされたメソッドです。タスクキュー内にある。PYライン1810 'デフfetch_statistics(自己): 「」「このキューに関する現在の詳細を取得 戻り値:このキューについての情報を含む A QueueStatisticsインスタンス 『』」 リターンQueueStatistics.fetch(自己) ' また、スローされた例外はメソッドから返されたオブジェクトに関連し、メソッド自体は存在しません。実行時に若干異なる場合があります。 –
文書化されていないAPIを使用している場合、プロバイダーがあなたを切断して壊すことができる瞬間はどこにでもあります。 –