問題タブ [gae-backends]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - AppEngine モジュールを使用する場合、Java プログラムはどの「バックエンド」であるかをどのように判断できますか?
以前は、AppEngine で実行されている Java プログラムは、次の呼び出しによって、それがどのバックエンドであるかを知ることができました。
はBackendService
「モジュール」の出現により廃止されましたが、完全なモジュールに移行したくない場合は、複数の「名前付きバージョン」でアプリをデプロイして同じ効果を得ることができます。
しかし、この新しいシステムを使用して、非推奨のコードを使用せずにプログラムがどのバックエンド/バージョンであるかを判断するにはどうすればよいでしょうか?
java - ThreadPool Executor が GAE でスレッドを実行していない
Google App Engine で executor フレームワークを使用しようとしています。以下は、実行しようとしているコードです。
しかし、これはスレッドを開始しません。しかし、thread.start()を使用すると、正しく動作します。Whitelisted Classesを確認しましたが、Executor クラスが提供されています。だから私はそれを間違っているのですか?
java - バックエンドが Android Studio のメイン アプリと同期していない
アプリに Google Cloud バックエンド モジュールを追加しました。それは昨日までうまくいきました。その後、バックエンド クラスに加えた変更を突然認識しなくなりました。たとえば、バックエンドに setId、getId などのメソッドを持つモデル クラス「Match」があります。アプリ モジュールでは、Match クラスをインポートし、そのメソッドも使用しました。そして昨日、このクラスに新しいメソッド「getText」を追加しました。しかし、このメソッドはアプリモジュールのオートコンプリートに表示されず、これを強制的に使用しようとすると「シンボル 'getText' を解決できません」というエラーが表示されました。同期の問題かもしれないと思ったので、次のことを行いました(さまざまな順序で何度も):
- ビルドプロジェクト
- きれいなプロジェクト
- バックエンドを実行
- バックエンドを GAE プロジェクトにデプロイする
- プロジェクトを Gradle ファイルと同期する
- キャッシュの無効化/再起動...
- Match クラスの import ステートメントを削除して再度追加し、再構築を行いました
- 新しいプロジェクトをゼロから作成し、バックエンドを追加して、デフォルトの「MyBean」クラスで同じことを行いました。繰り返しますが、既存のメソッドのみを認識し、追加したい新しいメソッドは認識しません
しかし、コードは頑固です。それぞれのアプリ モジュールが参照しているバックエンド クラスが、何らかの理由でフリーズしたようです。Match クラスのいくつかのメソッドをコメントアウトしてからプロジェクトをリビルドしても、それらのメソッドはアプリ モジュールに表示されたままです。
ところで、私は Android Studio 2.1 を使用しています。
今、頭を壁にぶつけています。
java - Google App Engine でモジュールを使用し、タスク キュー (Java) を使用してモジュールにターゲットを追加する方法は?
タスク キューの期限を 10 分以上超過しているタスクがあります。さまざまなドキュメントを調べたところ、モジュールを使用すると、長時間実行されるタスクを処理するインスタンスを実行できることがわかりましたが、できればタスク キューを使用して実行する必要があります。バックエンドを使用していましたが、非推奨です。
私の質問は、既存の App Engine プロジェクトにモジュールを導入する方法と、それらを使用して長時間実行タスクを実行する方法です。
以下はコードの一部です:
モジュールを使用して長時間実行されるタスクを追加するには、上記のコードにどのような変更を加える必要がありますか? [「submitworker」は実際の長時間実行タスクであるサーブレットです]
このリンクを参照しましたが、3 番目の手順を回避できません
。 3. サービス宣言要素を appengine-application.xml ファイルに追加します。
また、プロジェクトにモジュールを正常に追加した場合でも、タスク キューを使用してこのモジュールをターゲットにするにはどうすればよいですか?
私はこの質問に答えましたが、これは Python の実装であり、私の実装は Java です。
モジュールで「ターゲット」を使用する方法と、タスク キューに追加するときにそれを使用する方法について、段階的なプロセスを探しています。
実行時間の長いモジュール ターゲットをタスク キューに追加しても、10 分後に実行が終了しますか、それともタスク キュー内のタスクの有効期限が切れてもタスクは完了しますか?
提案してください。
google-app-engine - Google App Engine でバックエンド インスタンス クラスをプログラムで変更する
Google App Engine プロジェクトのバックエンド インスタンスを使用しています。(フロントエンド インスタンスは 60 秒を超えるリクエストを処理できません — もっと時間が必要です。)
負荷が高い場合があるため、B4 インスタンス タイプを選択しました。ただし、特定の時間帯 (たとえば、午前 2 時から午前 7 時まで) は負荷が非常に低いため、B4 インスタンスを使用するのは過剰です。
コストを節約するために、特定の時間にそのインスタンスのタイプを B2 に変更し、別の時間に B4 に戻す cron ジョブを作成したいと考えています。
しかし、Modules APIを見てみると、そうする方法が見つかりませんでした。
では、どうすればそうできますか?
ラミエルから回答を得た後に編集
最後に、次のように Admin API を使用しました。
java - バックエンド サービスの Appengine リクエスト期間
Appengine Java アプリケーションをバックエンドからモジュール / サービスに移行中です。現在バックエンドを使用していることの 1 つは、60 秒の要求期間制限よりも時間がかかるデータのアップロードです。これまでのところ、CancellationException を返さずに 60 秒を超えるリクエストを受け入れるようにサービスを構成する方法を見つけることができませんでした。確かに、Appengine はサービスへの変換でより長いリクエストのサポートを削除しませんでしたか? それらはどのように構成できますか?