Google アプリ エンジンで Python 2.7 アプリを実行しています。タスクキューに投稿を送信する非常に基本的な関数があります。タスクキューは、メール テンプレートに解析されたいくつかの変数に基づいて電子メールを作成して送信する関数に投稿します。
古いバージョンのアプリでタスクキューが停止しているのか、それとも何が問題なのかはわかりませんが、メールを送信するファイルのコードを更新して変更をアップロードすると、それらの変更によってメールが送信されません。アプリが送信するテキスト。間違った古いバージョンのファイルを使用しているようです。
この問題の原因は何ですか?
編集
ちなみに、これは私がこれまでに試したことです。
アプリを新しいバージョンにアップデートしてみましたが、変化はありませんでした
プロジェクト内の他のファイルを編集してみましたが、すべて正しく更新されているようです
コマンドを実行するために .bat ファイルを使用してアップロードするために oauth メソッドを使用しています。アプリのバージョンを更新しても問題が解決しなかったため、更新は必要ありません。
使用したい電子メールコードを古いクラスから新しいクラスに移動しようとしましたが、main.py url を新しいクラスを指すように変更しましたが、古い電子メールテキストを引き続き使用しています
メールをトリガーするための古い URL を削除して、まったく新しい URL を使用しようとしましたが、古いメール テキストが引き続き使用されます。
version-number.project-id.appspot.com 形式を使用してアプリをテストしようとしましたが、そのバージョンのどこにも存在しない古い電子メール テキストがまだ使用されています。
繰り返しになりますが、アプリでメールを送信しようとしていますが、古いメッセージが完全に削除され、メール コードが新しいファイルに移動され、アプリのバージョンが新しくなったにもかかわらず、どういうわけかまだ送信しています。古い電子メール テキスト。
編集 2
これは、タスクをキューに入れるための関連コードです。
taskqueue.add(url="/emailnotify", countdown = 1,
params = {"email":tPaypalEmail, "gold":tGoldAmount,
"name":tCustomerName, 'key':tOrderKey} )
これは、電子メールを送信することになっているクラスの関連コードです。
from cStringIO import StringIO
import webapp2
from models.order import Order
from google.appengine.api import mail
from google.appengine.ext import db, webapp
from _stringmethods import StringMethods
from _numbertogp import NumberToGp
class EmailNotify(webapp2.RequestHandler):
def post(self):
tPaypalEmail = self.request.get('email')
tCustomerName = self.request.get('name')
tGoldAmount = self.request.get('gold')
tOrderKey = self.request.get('key')
tOrder = Order()
tOrder = Order.get(tOrderKey)
tVerificationCode = tOrder.orderVerificationCode
tGoldInt = int(tGoldAmount)
tGoldAmount = NumberToGp.ConvertIntToBet(tGoldInt)
tVerificationFile = cStringIO.StringIO()
tVerificationFile.write(str(tVerificationCode))
#new message which does not appear in the app emails
tMessage = """Long string formatted message""" % (str(tCustomerName), str(tGoldAmount), str(tVerificationCode))
logging.debug(str(tMessage)) #this does not appear in the logs
message = mail.EmailMessage()
message.sender = "Smokin Mils Goldshop <Smokin.Mils.Goldshop@gmail.com>" #this email user is added as an app owner
message.to = tPaypalEmail
message.subject = "SmokinShop Order Details"
message.body = tMessage
message.attachments = [('verification-code.txt', tVerificationFile.getvalue())]
message.send()
編集 3
この問題を投稿した reddit の質問への回答として、queue.yaml を次に示します。
queue:
- name: default
rate: 60/s
bucket_size: 50
retry_parameters:
min_backoff_seconds: 2
max_backoff_seconds: 200
task_retry_limit: 10