java Firebase:延迟退出,直到写入完成

 乱舞仙魔神啊_414 发布于 2022-12-19 12:39

我有一个用Java编写的服务器,它可以在收听,处理和更新Firebase数据时收到关闭信号.由于Firebase线程是Java中的守护程序线程,因此我想在主线程中添加一些延迟以允许完成写入操作.

我目前的想法是锁存方法:使用一些并发计数器来跟踪挂起的写操作,并让主线程在没有时退出.计数器会在onComplete()回调中更新,所以我想知道:

在Firebase客户端中,何时可能onComplete()无法调用回调?僵局有合理的危险吗?

1 个回答
  • 摘自谷歌小组讨论.这使用布尔值done(在这种情况下为线程安全操作的AtomicBoolean)和while循环.

    import com.firebase.client.Firebase;
    import com.firebase.client.FirebaseError;
    
    import java.util.Date;
    import java.util.concurrent.atomic.AtomicBoolean;
    
    public class Demo {
    
        public static void main(String[] args) {
            final AtomicBoolean done = new AtomicBoolean(false);
            Firebase ref = new Firebase("https://testjava.firebaseio-demo.com/");
            ref.setValue(new Date().toString(), new Firebase.CompletionListener() {
                @Override
                public void onComplete(FirebaseError firebaseError, Firebase firebase) {
                    done.set(true);
                }
            });
            while (!done.get());
        }
    }
    

    2022-12-19 12:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有