方法が必要なので、変数ストアの値をGoogle appengineのデータベースに24時間保持し、その後自動的に破棄します。Javaでコードの説明が必要です。ありがとう
3 に答える
Google App Engine データストアのエンティティにデータを保存し、24 時間ごとにデータを削除する cron スクリプトを使用できます。
データストアの詳細については、Java でのデータの保存をご覧ください。App Engine での cron ジョブの詳細については、Cron for Java を使用したスケジュールされたタスクをご覧ください。
エンティティを追加し、すぐに 24 時間の eta で実行される taskqueue タスクを作成し、その ID (TQ パラメータとして渡される) を使用してエンティティを削除します。これにより、削除まで最低 24 時間かかります。ただし、タスクキュー スケジューラが eta でスケジュールされたタスクをすぐに取得しない場合、24 時間後に削除が行われる可能性があります。(これは、このタスク専用の非常に高レートの TQ を使用することで多少緩和される可能性があります。) 非常に単純なアプローチは、「削除までのあいまいな 24 時間以上」の問題によって格下げされます。 cron の実行頻度について。-スティーブ
re: コード サンプルはドキュメントを試してください... https://developers.google.com/appengine/docs/java/taskqueue/
エンティティを 24 時間のタイムアウトで Memcache に保存することもできます。これは非常にタイムリーで正確な削除であり、memcache 自体によって自動的に行われます。保存する値がユース ケースにとって重要な場合はお勧めできません。memcache の SLA を確認してください。
データが重要であるが、24 時間の遅延の精度がそうでない場合は、通常どおりエンティティをデータストアに保存しますが、エンティティの構築時にタイムスタンプ (java.util.Date) フィールドが入力されます。次に、バックエンド タスクを 1 時間に 1 回実行して、削除するエンティティを検索します。これはリソースの消費量が少ないバリアントですが、エンティティが 24:00:00.0000-24:59:59:9999 (タスクの実行時間によって異なります) である場合、エンティティは削除されます。
エンティティを正確に削除するには、スクリプトを 1 分または 1 秒に 1 回実行する必要があります。他の問題につながる可能性があり、データ モデルによっては、おそらくトランザクションの使用を開始する必要があります。