2012-01-20 5 views
0

現在、約4000人のユーザーを持つGoogleアプリケーションエンジンアプリケーションを使用しています。すべてのユーザーに電子メールを送信するハンドラを作成したいと考えています。アプリケーションエンジンアプリケーション内のすべてのユーザーにメールを送信する方法

問題は、アプリケーションエンジンがデータストアからエンティティを取得する際に制限があることです。たとえば、データストアから返される最大行数は1000です。

gqlのループおよびリミットオフセットパラメータを使用して、すべてのユーザーを段階的に取得できます。しかし、今回はハンドラの最大寿命が30秒に制限されています。

私はこの問題を克服するためにいくつかの研究を行いました。私はバックエンドで終わりました。しかし、それは私のバックエンドの使用法は異なると私はこの操作に適していないことを意味します。

このタスクをどのように達成できますか?事前に

おかげ..

+0

1000エンティティのオフセットの制限は、しばらくの間実施されていません。ただし、制限とオフセットは使用しないでください。カーソルを使用する必要があります。 –

答えて

0
from google.appengine.api import mail 

mail.send_mail(sender="Example.com Support <[email protected]>", 
       to="Albert Johnson <[email protected]>", 
       subject="Your account has been approved", 
       body=""" 
Dear Albert: 

Your example.com account has been approved. You can now visit 
http://www.example.com/ and sign in using your Google Account to 
access new features. 

Please let us know if you have any questions. 

The example.com Team 
""") 
+0

私は電子メールを送信できますが、私の問題はデータストアから4000人を取得できず、1つの要求ですべての人に電子メールを送信できないことです。 – gurkan

+0

ああそうだ。間違って申し訳ありません。 – Shadow

0

タスクキューは、あなたに10分の期限を与えます。 documentation

0

1件のリクエストで1000件以上のアイテムを取得できます。ただ、これを取得してみてください使用を避ける:

実体= Entity.all()#< - 無エンティティで電子のため

をフェッチ: mail.send_mail()

これは、ユーザーを取得し続けます10分の制限がなくなるまで:多くのエンティティと4000人以上のユーザーには十分です。

関連する問題