我正在调用API,但大多数情况下我一直收到错误:" 自SSL连接已关闭后删除关闭 "和" 过早连接关闭(服务器似乎不支持请求流水线)". "就像90%的时间我得到了这个错误,这意味着:在非常罕见的情况下,查询会返回它应该的数据.
为了确保这不是API的服务器问题,我使用Node.js(Express和Request libs)复制相同的查询,并且它每次都有效.这让我几乎可以肯定是一个喷雾虫.
这是代码的示例:
case class MyClass(user: String, pass: String)
class MyActor extends Actor {
import spray.client.pipelining._
import spray.http.BasicHttpCredentials
import spray.http.{HttpRequest,HttpResponse}
import scala.concurrent.Future
import context.dispatcher
def receive = {
case myClass: MyClass => {
val credentials: BasicHttpCredentials = BasicHttpCredentials(myClass.user, myClass.pass)
val url: String = "https://myApi?params=values"
val request: HttpRequest = Get(url) ~> addCredentials(credentials)
val pipeline = sendReceive
val response: Future[HttpResponse] = pipeline(request)
val finalRes: Future[String] = response.map{ r =>
println(r)
r.entity.asString
}
finalRes pipeTo …
Run Code Online (Sandbox Code Playgroud) 这就是问题,我需要告诉Docker不要容器化网络,因为它需要连接到VPN(企业专用数据库)内的MongoDB.
有一个Docker命令让我这样做:--net=host
.参考这里.
因此,例如,在本地计算机上运行容器时,我会执行以下操作:
docker run --rm -it --net=host [image-name]:[version] bash -il
Run Code Online (Sandbox Code Playgroud)
而这个命令将起到作用.多亏了这一点,我可以连接到"私人"MongoDB.
所以,我的问题是:有没有办法docker run
在Elastic Beanstalk上自定义Single Docker Environment 的命令,所以我可以添加--net=host
?
我已经尝试将container_commands用于config.yml
文件中以在那里添加该指令,但我认为这不是我需要的,这里是一个片段:
container_commands:
00-test_command:
command: bundle exec thin --net=host
01-networking-fix:
command: "docker run --rm -it --net=host [image-name]:[version] bash -il"
Run Code Online (Sandbox Code Playgroud) amazon-ec2 amazon-web-services docker amazon-elastic-beanstalk
我想在Amazon的Elastic Beanstalk上的Docker多容器环境中部署几个Scala应用程序.
似乎整个过程比我期待的要复杂一些.所以我真的很期待听到一些关于最佳实践和其他方法的反馈,以改进我的整个过程,并能够"自动化"一些步骤(如果可能的话).
这是我目前的流程:
我很想找到一种自动化第2步的方法. 因为这需要我为每个应用程序添加一个额外的回购.我的应用程序托管在一个git仓库中,我每个都有一个"额外"的仓库,我托管在步骤1中生成的工件,以便能够执行第3步.
我正在使用WartRemover工具来避免Scala 2.11代码中可能出现的错误.
具体来说,我想知道如何修复" 产品类型推断 "错误.
看看repo文档,我只能看到失败的例子,但我想知道我是如何修复这个错误的:
https://github.com/puffnfresh/wartremover#product.
做我的作业,我最后得到这个解释如何修复Type Inference Failures错误的其他链接https://blog.cppcabrera.com/posts/scala-wart-remover.html.我引用" 如果您看到下面的任何警告,修复通常就像提供类型注释一样简单 ",但我不明白这意味着什么.我真的需要一个具体的例子.
所以,基本上我想从base64字符串内容创建一个临时文件.现在,我正在使用本机java-io函数.但我想用scala的rapture-io库来实现相同的结果.
所以我的问题是,是否有可能通过狂喜来实现这一点,如果是这样,怎么样?
我已经阅读了文档,但不够具体:
https://github.com/propensive/rapture-io/blob/master/doc/introduction.md
这是我的实际代码:
import org.apache.commons.codec.binary.Base64
import java.io.FileOutputStream
import java.io.File
val data: String = base64StringContent //Base64 String content of the file.
val fileName = myFileName
val fileExt = myFileExt
//It does write the file in my temp folder.
val file: File = File.createTempFile(fileName, fileExt)
val fileByteArray: Array[Byte] = Base64.decodeBase64(data)
val fileOutFile: FileOutputStream = new FileOutputStream(file)
fileOutFile.write(fileByteArray)
fileOutFile.close()
file.deleteOnExit()
file
Run Code Online (Sandbox Code Playgroud) 我想在我的项目中使用sbt-proguard插件,但我需要在Build.scala文件中进行设置.
我阅读了文档,但是只有一个build.sbt文件的例子,在我的情况下不起作用.我需要知道如何为我的Build.scala文件配置插件.
这是repo的链接:https://github.com/sbt/sbt-proguard/blob/master/README.md#example
仅供参考:我使用的是scala.version = 2.11.4和sbt.version = 0.13.5
scala ×5
scala-2.11 ×3
docker ×2
akka ×1
amazon-ec2 ×1
dockerhub ×1
file-io ×1
java-io ×1
rapture.io ×1
sbt ×1
sbt-docker ×1
sbt-proguard ×1
spray ×1
spray-client ×1