Cron は、1 分未満の粒度をサポートしていません。GAE の cron が実行される時間については、ドキュメントは次のように述べています。
cron によって呼び出された HTTP 要求は最大 10 分間実行できますが、他の HTTP 要求と同じ制限が適用されます。
これは、cron リクエストがタスク キュー リクエストと同じように扱われることを示唆しています。フロントエンド インスタンスへのリクエストの実行には 10 分かかりますが、バックエンドへのリクエストには 24 時間の期限があります。
編集: cron で 30 秒の粒度が本当に必要な
場合は、TaskQueue の Taskのcountdown
プロパティを利用することで、少し回避策が可能です。手順は次のとおりです。
- 意図した /test サーブレットとは異なるサーブレットを実行する 1 分間の cron を用意します。
- このサーブレットで、目的の /test サーブレットを指す 2 つのタスクを作成します。各タスクには、そのプロパティに 30 と 60 の値があり
countdown
ます。
- 両方のタスクを TaskQueue にプッシュします。
または、サーブレットの開始から 30 秒と 60 秒で目的の ETA を事前計算し、代わりにそれをeta
プロパティに配置して、粒度を向上させることもできます。
最後の注意点として、eta
andcountdown
は、タスクが指定された時間に正確に実行されることを保証しません。キューが飽和している場合、またはインスタンスが過負荷になっている場合、遅延が予想される場合があります。