0

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
4

1 に答える 1