2

GAE の TaskQueue API を使用して HTML ページのキャッシュを更新することを計画しています。キャッシュはデータストア (および memcache) に保存されますが、データストアの方が信頼性が高くなります。

週に一度、いくつかのデータを追加/編集し、関連する HTML ページを再生成する必要があり、タスクをトリガーするのがその方法です。

編集内容が異なると、キャッシュされた同じページが変更される可能性があることに注意してください。たとえば、ホームページには、さまざまなデータのいくつかの部分のスニペットがあります。私が望むのは、いくつかの編集を蓄積できるように (たとえば、1 時間のカウントダウンを使用して)遅延してタスク キューにタスクを起動することです。最終的に、キャッシュされたページは 1 回だけ再生成されます。

問題は、1 時間以内にページ X を再生成するタスクが既にキューに入れられている場合、ページ X を再生成するタスクを追加する必要がないことです。したがって、タスク リストをチェックして、既に存在するかどうかを確認する必要があります。

タスク リストにアクセスするにはどうすればよいですか?

4

2 に答える 2

2

同じタスクを追加するとDuplicateTaskNameErrorが発生することがわかりました。おそらく、それだけで十分です。

于 2010-09-16T11:44:47.917 に答える
0

編集を行うたびに、アイテムをキャッシュから簡単に削除できます。次に、誰かがページを読みに来たときに、そのページがキャッシュにないことに気づき、その時点でデータストアからページを取得し、新しく取得したデータでキャッシュを更新します。アイテムがキャッシュにあることを常に保証できるとは限らないため、とにかく、この種のロジックは既に持っている必要があります。これは、更新を行った後の最初のフェッチの速度に影響しますが、その後は問題ありません。

于 2010-09-16T12:11:13.670 に答える