0

私はアプリエンジンアプリケーションを持っています。データベースに(Googleドライブにアクセスできるようにするために)ユーザーにトークンを更新させます。

今、私はこれを作成したい:

毎週(つまり、7日ごとに)、一時的にユーザーのPDFドキュメントをGoogleドライブからダウンロードして操作したいと考えています。PDFドキュメントについて各ユーザーにメールを送信します。

主な問題は、多くのユーザーが存在する可能性があることです。また、各ユーザーも大量のドキュメントを持っている可能性があります。この作業は、ユーザーごとに 1 週​​間に 1 回行う必要があります。しかし、各ユーザーのデータにも多くの時間が必要です。

質問: では、どのタイム サービスを使用すればよいと思いますか? Cron またはタスク キュー。なぜ?タスク キューの場合は、どれか。どちらがより速く、柔軟になりますか? 後でユーザーにメールを送信することもできます (要求されたときにすぐにメールを送信する必要はありません)。

質問 2:たとえば、週に 1 回、タスク キューを実行できますか?

たとえば、毎日実行したい場合は、次のようなものを使用できます。

<rate>1/d</rate>

しかし、どうすれば週に1回それを行うことができますか?

QUESTION3:利用者が多いので (そして利用者一人一人に時間がかかるので)、そのようなものを利用できますか?

CRONジョブは毎週(週に1回)になります。そして CRON は、ユーザーごとに TASK QUEUSE を呼び出します。各ユーザーデータは一時的にアプリエンジンサーバーにダウンロードされます(メモリに保存すると、サーバーにとって非常に難しいと思います)。次に、PDF ドキュメントを表示し、各ユーザーにメールを送信します。これは良い方法ですか?またはCRONのみを使用する必要がありますか?ここに制限がありましたか?サーバーストレージまたはキューなどで。

4

1 に答える 1

1

両方を使う。7 日ごとに実行するcron ジョブを作成します。cron ジョブで (プッシュ キュー内の) タスクを起動して、PDF を処理します。PDF ごとに個別のタスクを使用して処理し、queue.yaml を構成して、正しいレートで処理するようにします (予算/レート制限要因などに応じて)。

メールを送信する必要がある場合は、メール APIを介してタスク リクエストから送信できます。

余談ですが、多くのユーザーがいる場合は、cron ジョブを 7 日ごとよりも頻繁に (たとえば、1 日 1 回、またはそれ以上) 実行することをお勧めします。ロジックを使用して、cron が実行されるたびに処理する必要があるユーザーを決定できます。これにより負荷が軽減され、最終的にはお金を節約できます。

于 2013-10-08T09:00:18.763 に答える