2012-04-05 15 views
0

エンキュー後に実行をスケジュールされたプッシュキュータスクを取得するにはどうすればよいですか?タスクキューの実行遅延を回避する方法

プルキューを使用したcronジョブに頼る必要がありますか?

プッシュキューで待機中のタスクの実行では、非常に長い遅延(20分)が定期的に発生します。キューには実行中のものと実行されていないものの6,000以上のタスクが表示されます。 その後、タスクは最終的に実行がスケジュールされ、キューが高速で排水されるので大きなバーストスパイクが発生します。

例として、キュー定義は次のようになります。

<queue> 
    <name>example</name> 
    <target>1</target> 
    <rate>20/s</rate> 
    <bucket-size>40</bucket-size> 
    <max-concurrent-requests>10</max-concurrent-requests> 
    <retry-parameters> 
     <min-backoff-seconds>10</min-backoff-seconds> 
     <max-backoff-seconds>60</max-backoff-seconds> 
     <max-doublings>2</max-doublings> 
    </retry-parameters> 
</queue> 

答えて

1

遅延は、両方のプルキューで発生し、キューをプッシュすることができます。タスクキューは信頼性の高いタスク実行を提供します。要求されたものより早く実行されることはありませんが、後で、たとえばあるデータセンターから別のデータセンターにフェイルオーバーする場合があります。スケジューリングはリアルタイムではなく、ベストエフォートです。

+0

現在、プッシュキューで2時間の遅延が確認されています。 @エリック - なぜプルキューに遅延がありますか?私は専用のバックエンドが、GAEのタスクスケジューリングに依存することなく、どんなチャンクでも望みどおりに動作できると考えました。 –

+0

@Caster - プルキューを使用しても、システムは追加、リース、および削除されたタスクを追跡する必要があります。マスタ/スレーブデータストア内の読み取り専用期間と同様に、リースが発行されない場合もあります。 –

関連する問題