我正在编写一个Android应用程序,其中包含UI和运行的单独进程.我想在主进程和我的应用程序中定义的服务之间共享简单信息,该服务在不同的进程中执行.为了这个目的,我发现使用AIDL进行进程间通信会很麻烦.
问题是:使用应用程序的共享首选项在这两个进程之间进行通信是否安全?这是:读取和写入相同的共享首选项.
我想知道它是否真的有效.在android开发人员中有关共享首选项的参考(http://developer.android.com/reference/android/content/SharedPreferences.html),他们声明:注意:目前这个类不支持跨多个进程使用.这将在稍后添加.但我不确切地知道这是什么意思.
谢谢你的帮助
查看AWS Elastic Cache的文档我可以看到它们支持Redis Cluster并且一般性地讨论键/值数据和Redis操作.但是,如果这将支持Redis'pub/sub沿不同服务器的复制,则不清楚.
我们正在node-xmpp上构建一个聊天服务器.我们将有许多应用程序服务器来处理聊天连接,我们依靠Redis pub/sub来处理聊天线程之间的通信.我们要求无论每个聊天服务器与之通信的实际Redis实例如何,它们都可以共享相同的发布/订阅通道.
在AWS Elastic cache白皮书(第7页)中,如果您需要pub/sub,则表示要使用Redis.据我所知,AWS Elastic Cache实际上支持pub/sub可扩展性,但我还不确定.
amazon-web-services redis node.js node-xmpp amazon-elasticache
我正在使用Apache Commons Pool库来维护一个基础连接池(可以看作任何类型的连接,并不重要).
我面临的问题是,我发现将对象返回池的唯一方法是通过从GenericObjectPool类调用returnObject方法以编程方式进行.这会强制应用程序保证从池中借用对象的返回,无论应用程序中是否有任何异常或意外行为.
即使我在整个应用程序中控制对象返回池中,我发现完全依赖程序员返回对象的风险很大.有人知道在超过给定超时后自动返回对象的方法(回收对象).一旦超过借用对象的超时,它也可以以任何方式使池创建新对象.
PS:我的应用程序公开了一组REST Web服务,它们连接到分布式memcache服务器(Couchbase).池创建了一组与Couchbase的连接.
任何建议都会有所帮助!
编辑
我尝试过的第一个解决方案是创建一个New Class(CouchbaseClientHandler),它包含一个连接Object,该对象来自存储在池中的对象类型(CouchbaseClient).我已经在CouchbaseClientHandler上实现了finalize方法,如果对该对象的引用因意外异常而丢失,则确保关联实际返回到池中.当垃圾收集器销毁对象时,将返回该对象.这没有按预期工作.无法预测垃圾收集器何时到达回收物体,并且通常需要比预期更长的时间.
我现在实际工作的解决方案有点不同,但更安全.由于我的池旨在被Web服务使用,并且因为每个Web服务都在一个单独且独特的线程中运行(我在Tomcat上使用Jersey),所以我决定使用映射唯一线程ID的静态hashmap变量到执行webservice时从池中借用的CouchbaseClient对象列表.由于我的Web服务是以这样的方式设计的,无论发生什么,处理程序方法将在返回之前处理最终输出,我可以确保始终运行一个方法,将那些借用的对象(连接)返回到池,没有有效地回到游泳池.
虽然这对我来说效果很好,但我真的想知道是否有更好的方法来声明或擦除未被返回的超时借用对象.
web-services connection-pooling production-environment apache-commons-pool