2017-06-13 3 views
0

Googleのアプリケーションエンジンでは、同じプッシュタスクキューにタスクを追加すると、それらはすべて時間順に並んでキューに入れられますか?または、最後に追加されたタスクが別のタスクの前に実行される可能性はありますか? (これはすべて同じキューを使用していることを前提としています)。appengineでタスクキューを時間順に維持する

答えて

2

必ずしもそうではありません。私はそれが起こらないかもしれない2例と考えることができます:

  • タスクが(例えば、将来的に)異なるETASを持つことができ、注文が正常にETAのものであろう、do google app engine pull queues return tasks in FIFO order?

  • タスクを参照してください実行は(何らかの理由で)失敗する可能性があり、バックオフスキーム(すなわち、ある遅延の後)で自動的に再試行される可能性があります。これは、失敗した後に通常実行される他のタスクが実際に再試行の試行前に実行される可能性があることを意味します。

+0

"これは、失敗した後に実際に実行される他のタスクが再試行の試行前に実際に実行される可能性があるタスクを意味します。知っておいてよかった。ありがとう。 – BlueBoy

2

タスクキューは実行順序を保証しません。特に、すぐに実行するようにスケジュールされているタスクは、コードのパスに沿って実行され、大幅な並べ替えが発生する可能性があります。プッシュキューおよびプルキューの動作もはっきりと異なります。

ただし、将来短時間でタスクを実行するようにスケジュールすると、実行順序が偶数になる可能性が高くなります。繰り返しますが、保証はありません。また、通常ではありますが、稀ではありますが、アウト・オブ・オーダー・デリバリーをエンジニアリングする必要があります。障害モードは、通常、時折隔離された順序外タスクではなく、短期間に大量のアウト・オブ・オーダー・タスクになります。

関連する問題