Google App Engine のタスク キューのジョブは自動的にデフォルトのバックエンドに置かれますか?それとも、ジョブを呼び出すコードのバックエンド バージョンでスケジュールされますか?
「テスト」と呼ばれるバックエンドと「プロダクション」と呼ばれる 2 つのバックエンドがあり、「プロダクション」がデフォルト バージョンであるとします。
それぞれに、次のように単純化されたファイルがあります。
from google.appengine.api import taskqueue
import webapp2
class QueueScheduler(webapp2.RequestHandler):
def get(self): #in real life, post, but this makes for an easier example
taskqueue.add('path/to/myTask')
app = webapp2.WSGIApplication(('/myScheduler',QueueScheduler))
を呼び出すときtest.myApp.appspot.com/myScheduler
、 を指すタスクを作成しますか、test.myApp.appspot.com/path/to/myTask
またはmyApp.appspot.com/path/to/myTask
(つまりproduction.myApp.appspot.com/path/to/myTask
)へのタスクを作成しますか?
これをコードから制御する方法はありますか? 「キュー」と呼ばれる 3 番目のバックエンドがあるとします。上記のコードを変更する方法はtest.myAppp.appspot.com/myScheduler
ありproduction.myApp.appspot.com/myScheduler
ますqueues.myApp.appspot.com/myScheduler
かqueues.myApp.appspot.com/path/to/myTask
?
メタ: 念のために言うと、私が扱っている特定の問題は、私の会社がモバイル アプリに Web アプリとは異なるバージョンのコードを使用していることです。バージョン番号をアプリにハードコードして、更新をリリースしたときのデフォルトのバージョンをアプリが指すようにし、下位互換性のないリビジョンを作成できるようにします。また、ユーザーに表示されるインターフェイスを更新する前に、データ処理を更新したい場合もよくあります。インターフェイスへの変更を部分的に終了している間、またはコードの複数のブランチを一度に操作している間にデータ処理を修正していないことを確認する必要なく、これを実行できるソリューションを探しています。私達' アプリのデフォルト バージョンとレガシー バージョンの両方を呼び出して、クライアント向けの準備が整っていないバージョンでデータ処理を実行できるようにしたいと考えています。cron.yaml でタスクを作成し、そこにバージョンを設定することで、ライブに維持する必要があるすべてのデータの問題を解決できますが、特定のものについては、維持しないという問題よりも、複数のブランチで開発するプログラミングのオーバーヘッドが必要です。データをリアルタイムで。