なぜクラウドを実行します - Firebaseにはとても時間がかかることが呼び出し?

デイブTaubler:

私はFirebaseデータベースにクラウドを実行して、実行中のJavaアプリケーションから接続しようとしてきました。実行する(そしてその後も、私は望ましい結果を得ることはありません)私のアプリのFirebase取引のための多くの分の遅れがあるようです。

私のアプリが起動されると、次のメソッドが呼び出されます:

    public void init() throws Exception {
        LOGGER.info("FirebaseRepo-init starting...");

        FileInputStream serviceAccount =
                  new FileInputStream("/MyDatabase.json");

        FirebaseOptions options = new FirebaseOptions.Builder()
                  .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                  .setDatabaseUrl("https://mydatabase-222123.firebaseio.com")
                  .build();

        LOGGER.info("FirebaseRepo-init 1");

        fbApp = FirebaseApp.initializeApp(options);

        LOGGER.info("FirebaseRepo-init 2");

        dbRef = FirebaseDatabase.getInstance().getReference();

        LOGGER.info("FirebaseRepo-init 3");

        final DatabaseReference entityRef = dbRef.child("entities");

        LOGGER.info("FirebaseRepo-init 4");

        Entity e = testEntity();

        entityRef.runTransaction(new Transaction.Handler() {

            @Override
            public void onComplete(DatabaseError error, boolean committed, DataSnapshot currentData) {
                LOGGER.info("FirebaseRepo-init tx onComplete; com=" + committed + "; err=" + error);
            }

            @Override
            public Result doTransaction(MutableData data) {
                LOGGER.info("FirebaseRepo-init tx start");
                MutableData childData = data.child(e.getGuid().toString());
                if (childData != null) {
                    LOGGER.info("FirebaseRepo-init tx progress");
                    childData.setValue(e);
                } else {
                    LOGGER.info("FirebaseRepo-init tx null child");
                }
                LOGGER.info("FirebaseRepo-init tx will return");
                return Transaction.success(data);
            }
        });

        LOGGER.info("...FirebaseRepo-init ending");
    }

アプリを展開した後、ログを確認し、我々は、次を参照してください。

2020-03-30T01:51:40.318532ZINFO: FirebaseRepo-init starting...
2020-03-30T01:51:40.749160ZINFO: FirebaseRepo-init 1
2020-03-30T01:51:40.781135ZINFO: FirebaseRepo-init 2
2020-03-30T01:51:40.947959ZINFO: FirebaseRepo-init 3
2020-03-30T01:51:40.949045ZINFO: FirebaseRepo-init 4
2020-03-30T01:51:40.952295ZINFO: ...FirebaseRepo-init ending
2020-03-30T01:54:10.647748ZINFO: FirebaseRepo-init tx start
2020-03-30T01:54:10.945862ZINFO: FirebaseRepo-init tx progress
2020-03-30T01:54:12.546400ZINFO: FirebaseRepo-init tx will return
2020-03-30T01:56:03.046096ZINFO: FirebaseRepo-init tx start
2020-03-30T01:56:03.245789ZINFO: FirebaseRepo-init tx progress
2020-03-30T01:56:03.547215ZINFO: FirebaseRepo-init tx will return
2020-03-30T01:56:10.446070ZINFO: FirebaseRepo-init tx onComplete; com=true; err=null

トランザクションは、アプリのINIT後2分半程度呼び出され...そして再び約5分後に、そして最終的に完了しています。私は私のFirebaseダッシュボードに行くときまた、私は私のデータベースに何も表示されません。何も、私はエラーが報告されていない見ていても、追加されていません。

私が作ってるんだN00B間違い上の任意の考え?

gso_gabriel:

問題のコメントを考えると、それは予想通り、クラウドの実行が実際に働いているようだ、しかし、それはクラウドの実行は、それがこの特定のユースケースのための推奨製品ではないということ場合があります。ダグの答えあたりとしてCloud Run isn't meant to run arbitrary code on deployment. It's meant to run code in response to incoming HTTP requests as your run a web server on port 8080.直面している遅延のために理にかなっています、。それは他の製品をチェックする価値があるかもしれません。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=371158&siteId=1
おすすめ