小编Tho*_*nne的帖子

api和实现常规做法是单独的OSGI包吗?

我有一个依赖项的类,我想热部署而不重新启动依赖项.该类有一个接口,但只有一个具体的实现.

最初我创建了一个包,导出了接口,并使用未导出的激活器和实现类注册了实现.但是,如果我更新捆绑包,则在调用PackageAdmin#refreshPackages时更新后会重新启动使用已注册服务的捆绑包(这在使用fileinstall时是自动的).

我通过创建一个单独的api包来解决这个问题.

这是实现这一目标的最佳方式吗?

你有没有一个捆绑导出它的api并包含在同一捆绑中的实现.据我所知,任何给出的bundle都会导出它的所有类或没有类.我错过了什么?

osgi

16
推荐指数
2
解决办法
3935
查看次数

如何使用actor重写具有共享依赖关系的for循环

我们有一些代码需要运行得更快.它已经分析了,所以我们想要使用多个线程.通常我会设置一个内存队列,并有许多线程从事队列的工作并计算结果.对于共享数据,我将使用ConcurrentHashMap或类似的.

我真的不想再去那条路了.从我所看到的使用演员将导致更清晰的代码,如果我使用akka迁移到超过1 jvm应该更容易.真的吗?

但是,我不知道如何在演员中思考,所以我不知道从哪里开始.

为了更好地了解问题,这里有一些示例代码:

case class Trade(price:Double, volume:Int, stock:String) {
  def value(priceCalculator:PriceCalculator) =
    (priceCalculator.priceFor(stock)-> price)*volume
}
class PriceCalculator {
  def priceFor(stock:String) = {
    Thread.sleep(20)//a slow operation which can be cached
    50.0
  }
}
object ValueTrades {

  def valueAll(trades:List[Trade],
      priceCalculator:PriceCalculator):List[(Trade,Double)] = {
    trades.map { trade => (trade,trade.value(priceCalculator)) }
  }

  def main(args:Array[String]) {
    val trades = List(
      Trade(30.5, 10, "Foo"),
      Trade(30.5, 20, "Foo")
      //usually much longer
    )
    val priceCalculator = new PriceCalculator
    val values = valueAll(trades, priceCalculator)
  }

}
Run Code Online (Sandbox Code Playgroud)

如果有经验的玩家可以建议如何映射演员,我会很感激.

scala actor akka

5
推荐指数
1
解决办法
480
查看次数

如何禁用低带宽连接的jquery包含

我有一个简单的网站,它有点使用jquery但它不是必需的所以我想跳过jquery下载,如果用户连接速度慢.

理想情况下,我会检测到连接速度慢,但我认为检测到手机可能是合理的代理.

如果这是可能的,那么我将删除使用jquery的页面部分,并在加载jquery时动态添加它们.

我考虑的选项是:

  • 通过下载小图像来测试连接速度
  • 下载jquery但在一秒左右后超时(我搜索了取消下载但没有找到任何内容)
  • 将jquery全部放在一起,然后编写我需要的javascript(虽然我可能会对某些浏览器出错)
  • 在一些javascript中包装jquery下载,检查andriod或iphone的useragent
  • 尝试使用css媒体选择器来控制jquery下载

但我不确定该说服哪个.

此外,我不能使用服务器端技巧,因为它是一个静态页面(以避免appengine冷启动问题).

javascript jquery bandwidth

1
推荐指数
1
解决办法
791
查看次数

标签 统计

actor ×1

akka ×1

bandwidth ×1

javascript ×1

jquery ×1

osgi ×1

scala ×1