0

方法が必要なので、変数ストアの値をGoogle appengineのデータベースに24時間保持し、その後自動的に破棄します。Javaでコードの説明が必要です。ありがとう

4

3 に答える 3

3

Google App Engine データストアのエンティティにデータを保存し、24 時間ごとにデータを削除する cron スクリプトを使用できます。

データストアの詳細については、Java でのデータの保存をご覧ください。App Engine での cron ジョブの詳細については、Cron for Java を使用したスケジュールされたタスクをご覧ください。

于 2012-11-09T19:42:19.107 に答える
1

エンティティを追加し、すぐに 24 時間の eta で実行される taskqueue タスクを作成し、その ID (TQ パラメータとして渡される) を使用してエンティティを削除します。これにより、削除まで最低 24 時間かかります。ただし、タスクキュー スケジューラが eta でスケジュールされたタスクをすぐに取得しない場合、24 時間後に削除が行われる可能性があります。(これは、このタスク専用の非常に高レートの TQ を使用することで多少緩和される可能性があります。) 非常に単純なアプローチは、「削除までのあいまいな 24 時間以上」の問題によって格下げされます。 cron の実行頻度について。-スティーブ

re: コード サンプルはドキュメントを試してください... https://developers.google.com/appengine/docs/java/taskqueue/

于 2012-11-09T21:59:22.137 に答える
0

エンティティを 24 時間のタイムアウトで Memcache に保存することもできます。これは非常にタイムリーで正確な削除であり、memcache 自体によって自動的に行われます。保存する値がユース ケースにとって重要な場合はお勧めできません。memcache の SLA を確認してください。

データが重要であるが、24 時間の遅延の精度がそうでない場合は、通常どおりエンティティをデータストアに保存しますが、エンティティの構築時にタイムスタンプ (java.util.Date) フィールドが入力されます。次に、バックエンド タスクを 1 時間に 1 回実行して、削除するエンティティを検索します。これはリソースの消費量が少ないバリアントですが、エンティティが 24:00:00.0000-24:59:59:9999 (タスクの実行時間によって異なります) である場合、エンティティは削除されます。

エンティティを正確に削除するには、スクリプトを 1 分または 1 秒に 1 回実行する必要があります。他の問題につながる可能性があり、データ モデルによっては、おそらくトランザクションの使用を開始する必要があります。

于 2012-11-10T14:58:55.353 に答える