小编Tim*_*Tim的帖子

Emacs:list-packages [不匹配]

我是Emacs的新手.我想安装一个包,但是M-x package-install说没有这样的命令.

试图查看安装的软件包也M-x list-packages不起作用.GNU Emacs手册没有说太多(或者我看错了地方),由于我有限的Emacs知识,我无法想出有意义的搜索关键词.

emacs package emacs23 elpa

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

akka-stream + akka-http生命周期

TLDR:当我有一个传出的http请求作为流的一部分时,是否更好地为每个请求实现一个流(即使用短期流)或跨请求使用单个流实现?

详细信息:我有一个典型的服务,它接受HTTP请求,将其分散到多个第三方下游服务(不受我控制),并在发送回来之前聚合结果.我正在使用akka-http进行客户端实现并为服务器进行喷涂(遗留,随着时间推移将转移到akka-http).示意图:

request -> map -1-*-> map -> 3rd party http -> map -*-1> aggregation -> response

这可以通过为每个请求实现流或实现(部分)流一次并在请求之间共享来实现.

每个请求的实现产生实现开销1,并且不清楚如何利用连接池.这里描述这个问题(许多实现可能会耗尽池).我可以像这里一样长时间运行的http流中包装一个池并包装在mapAsync"上游"中,但错误处理策略对我来说并不清楚.当单个请求失败并且流终止时,它是否会取消池?此外,似乎我需要协调请求和响应,因为它们不会按顺序返回.

// example of stream per request

val connectionFlow = Http().cachedHostConnectionPool[UUID](host, port)
val httpFlow: Flow[HttpRequest, Try[HttpResponse], NotUsed] =
    Flow[HttpRequest]
      .map(req => req -> UUID.randomUUID()) // I don't care about id because it's a single request per stream.
      .via(connectionFlow)
      .map { case (response, _) => response }

val result = Range(1 …
Run Code Online (Sandbox Code Playgroud)

scala akka-stream akka-http

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

在IntelliJ中调试scala sbt集成测试

我为IntelliJ使用SBT插件,我使用以下构建设置创建了一个scala项目:Build.scala:

lazy val root =
    Project("root", file("."))
      .configs( IntegrationTest )
      .settings( Defaults.itSettings : _*)
Run Code Online (Sandbox Code Playgroud)

build.sbt:

<setting some parameters>
libraryDependencies += "org.scalatest" % "scala-test_2.10" % "1.0.8" % "test,it"
Run Code Online (Sandbox Code Playgroud)

现在我最终得到了src/main,src/test并且src/it在我的项目结构中.我现在可以运行compile,testit:test从IntelliJ和SBT repl中的SBT控制台运行.所以在这一点上一切都很好.

我还没弄清楚的唯一问题是如何调试集成测试.我添加了一个test:compile在启动之前运行的scalatest配置,这让我开始进行单元测试调试.我尝试为集成测试创建一个新的Debug配置,但无法弄清楚如何指向它src/it来查找测试.我尝试通过将"Test kind"更改为类并指向特定的测试类来调试特定测试,但是仍然遇到以下异常:

Unable to load a Suite class. This could be due to an error in your runpath. Missing class: it.AddPersonSpec
java.lang.ClassNotFoundException: it.AddPersonSpec
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at …
Run Code Online (Sandbox Code Playgroud)

unit-testing scala intellij-idea sbt

10
推荐指数
2
解决办法
6519
查看次数

对象可以从特征中推断出被覆盖的字段的类型吗?

我正在生成一些测试数据如下:

trait Template {
  val field1: Map[List[String], Map[Int, List[Boolean]]] //the type is for illustration. Think of it as a 'monstrous type definition'
  val field2: Map[List[Int], Map[Double, List[Option[String]]]]
}

object Fixture extends Template {
  override val field1 = Map()
  override val field2 = Map() 
}
Run Code Online (Sandbox Code Playgroud)

这个消息失败了value field1 has incompatible type,同上field2吗?

我可以通过Fixture显式提供类型来修复它,但我试图避免这种情况,因为如果我在特征中更改了一个类型,我将需要将它传播到每个fixture对象.

可我的object Fixture推断类型field1field2距离trait Template.

scala

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

为什么主线程在继续之前等待另一个线程完成?

我在一个复杂的Java应用程序中遇到的问题归结为以下几点:主线程在子线程未完成之前不会继续,尽管我认为应该这样做.示例问题的代码如下所示:

public class ThreadTest {

        static class MyThread extends Thread{
            public void run(){
                for(double i = 0; i<1; i+=0.01){
                    System.out.println(Math.pow(Math.PI,Math.E)*100.0*i-234.0);
                }
            }
        }

        public static void main(String[] args){
            (new MyThread()).run();
            System.out.println("main thread");
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,我总是首先从MyThread获取输出(独立于循环中有多少步骤),然后我从主线程获取消息.创建线程的想法是异步执行代码,但在这里我观察到一个明显同步的行为.我错过了什么?

提前致谢!

java multithreading

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

如何删除Grafana 2.5中的面板

似乎没有办法做到这一点.有一个"删除行"功能,但不适用于行中的面板.作为一种解决方法,我创建了一个新行,在那里移动面板然后删除,我认为这太过分了.

monitoring data-visualization grafana

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

从Ruby长期运行Redshift事务

我使用Ruby pg gem在事务中运行了几个sql语句.我遇到的问题是由于防火墙设置,连接超时了这些查询.这里提出的解决方案不起作用,因为它需要jdbc连接字符串,而我在Ruby中(jRuby不是一个选项).将驱动程序移动到AWS以删除防火墙也不是一种选择.

我的代码如下:

conn = RedshiftHelper.get_redshift_connection
begin
  conn.transaction do
    # run my queries
  end
ensure
  conn.flush
  conn.finish
end
Run Code Online (Sandbox Code Playgroud)

我现在正在研究PG异步API.我想知道我是否可以使用is_busy来防止防火墙超时,或者是那种效果.我找不到关于这个主题的好文档.感谢任何提示.

PS:我已经为单个查询解决了这个问题 - 我可以异步触发它并使用系统STV_INFLIGHT Redshift table来跟踪它的完成.事务不会以这种方式工作,因为我必须保持连接打开.

ruby pg amazon-redshift

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