2016-10-26 12 views
0

Google App Engineでマルチユーザータイマーを実装しています。タイマーが終了したら、計算を実行して結果をユーザーに送信する必要があります。いくつかのユーザーは、さまざまなブラウザからタイマーを開始および一時停止できる必要があります。コミュニケーションのためにチャンネルAPIを使用します。特定の時間にどのように計算を開始できますか?Google App Engineを使用したマルチユーザータイマー

タイマーの開始時に、etaでプッシュタスクを作成し、タイマー終了時刻に設定するという考えがあります。そのタスクが実行されたら、memcacheまたはデータストアに格納されているタイマーの状態を確認し、タイマーを一時停止したために状態が変更された場合は別のタスクを作成します。タイマーが終了すると、タスクは計算を開始します。 etaでタスクが正確に実行される保証はないので、より良いアプローチはありますか?

+2

タイマーの最大時間はどのくらいですか、どのような精度がありますか? – MeLight

+0

タイマーの最大時間は約10分かそれ以上になります。 1-2秒の精度はおそらく問題ありません。 – dudarev

答えて

0

タイマーの状態をチェックし、必要に応じて計算を実行するか、そうでない場合に戻ってくるだけで、定期的に繰り返すタスク(リエンキュー、最終的には秒単位の遅延)を行うことができます。

+0

私は '' eta'を使わないことが理にかなっていて、 'rate:1/s'の待ち行列で自己繰返しタスクを起動すると思うのですが、数秒の遅延があればOKです。タイマーをより堅牢にするために、JSクライアントからの呼び出しを実装して、時間が経過したときにエンドポイントからの計算をトリガーすることも計画しています。 – dudarev

関連する問題