小编dir*_*ini的帖子

Scala 2.11 + Play Framework 2.3案例类和函数中的22个字段限制

Scala 2.11已经出局,案例类的22个字段限制似乎是固定的(Scala Issue,Release Notes).

这对我来说已经有一段时间了,因为我使用案例类来模拟Play + Postgres异步中具有超过22个字段的数据库实体.我在Scala 2.10中的解决方案是将模型分解为多个案例类,但我发现这个解决方案难以维护和扩展,我希望在切换到Play 2.3.0-RC1 + Scala 2.11后我可以实现如下所述的内容. 0:

package entities

case class MyDbEntity(
  id: String,
  field1: String,
  field2: Boolean,
  field3: String,
  field4: String,
  field5: String,
  field6: String,
  field7: String,
  field8: String,
  field9: String,
  field10: String,
  field11: String,
  field12: String,
  field13: String,
  field14: String,
  field15: String,
  field16: String,
  field17: String,
  field18: String,
  field19: String,
  field20: String,
  field21: String,
  field22: String,
  field23: String,
) 

object MyDbEntity {
  import play.api.libs.json.Json
  import play.api.data._
  import …
Run Code Online (Sandbox Code Playgroud)

scala playframework-2.3

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

使用ansible复制本地文件(如果存在)

我正在一个项目中工作,我们使用ansible来创建一个服务器集群.我要实现的任务之一是将本地文件复制到远程主机,只有当该文件存在于本地时.现在我正试图用这个来解决这个问题

- hosts: 127.0.0.1 
  connection: local
  tasks:
    - name: copy local filetocopy.zip to remote if exists
    - shell: if [[ -f "../filetocopy.zip" ]]; then /bin/true; else /bin/false; fi;
      register: result    
    - copy: src=../filetocopy.zip dest=/tmp/filetocopy.zip
      when: result|success
Run Code Online (Sandbox Code Playgroud)

如果失败,则显示以下消息:ERROR:任务中缺少"action"或"local_action"属性"将本地filetocopy.zip复制到远程(如果存在)"

我试图用命令任务创建这个.我已经尝试使用local_action创建此任务,但我无法使其工作.我找到的所有样本都没有将shell视为local_action,只有命令样本,并且它们都没有其他任何命令.有没有办法使用ansible来完成这项任务?

infrastructure ansible ansible-playbook

23
推荐指数
3
解决办法
4万
查看次数

使用Spark的间歇超时异常

我有一个包含10个节点的Spark集群,并且在第一次使用Spark Context之后我得到了这个异常:

14/11/20 11:15:13 ERROR UserGroupInformation: PriviledgedActionException as:iuberdata (auth:SIMPLE) cause:java.util.concurrent.TimeoutException: Futures timed out after [120 seconds]
Exception in thread "main" java.lang.reflect.UndeclaredThrowableException: Unknown exception in doAs
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1421)
    at org.apache.spark.deploy.SparkHadoopUtil.runAsSparkUser(SparkHadoopUtil.scala:52)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$.run(CoarseGrainedExecutorBackend.scala:113)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend$.main(CoarseGrainedExecutorBackend.scala:156)
    at org.apache.spark.executor.CoarseGrainedExecutorBackend.main(CoarseGrainedExecutorBackend.scala)
Caused by: java.security.PrivilegedActionException: java.util.concurrent.TimeoutException: Futures timed out after [120 seconds]
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408)
    ... 4 more
Run Code Online (Sandbox Code Playgroud)

家伙有类似的问题,但我已经尝试过他的解决方案并没有奏效.

同样的异常也发生在这里,但问题不在于它们在这里我在主服务器或从服务器和客户端都使用spark版本1.1.0.

我试图将超时增加到120秒,但它仍然无法解决问题.

我通过脚本整合环境,我使用context.addJar将我的代码包含在类路径中.这个问题是间歇性的,我不知道如何跟踪它为什么会发生.任何人在配置一个知道如何解决它的火花簇时遇到过这个问题?

scala apache-spark

13
推荐指数
2
解决办法
1万
查看次数

迁移到SBT 0.13.5后,Artfactory中未经身份验证的用户

我有一个由7名成员组成的团队,在代理人后面设立,我们从0.13.1变为0.13.5.在sbt迁移之后,其中一个团队成员不能再执行sbt了.我的所有依赖项都在artifactory中设置,我无法访问外部存储库.SBT存储库已使用系统变量覆盖.

我将'存储库'文件放入〜/ .sbt /'存储库'文件包括:

[repositories]
  local
  my-maven-proxy-releases: http://repoaddress/artifactory/remote-repos/
  my-ivy-proxy-releases: http://repoaddress/artifactory/Ivy-remote/,[organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
Run Code Online (Sandbox Code Playgroud)

我在SBT的启动命令中使用系统变量包含了'-Dsbt.override.build.repos = true'.

每当他试图加载sbt时,由于未解决的依赖性SBT 0.13.5而失败我想知道是否有办法记录来自尝试的http响应以找到sbt 0.13.5?

Artifactory request.log显示此特定用户是: non_authenticated_user

我的artifactory的凭据已添加到sbt_home/plugins /中的credentials.sbt文件中.凭据文件已添加到.ivy2/.credentials文件中.我已经将用户更改为在另一个工作站中工作的管理员用户,但我仍然无法获得sbt 0.13.5.错误日志如上所示:

    HTTP response status: 401 url=http://repoaddress/artifactory/remote-repos/org/scala-sbt/logging/0.13.5/logging-0.13.5.pom
CLIENT ERROR: Unauthorized url=http://repoaddress/artifactory/remote-repos/org/scala-sbt/logging/0.13.5/logging-0.13.5.pom
    my-maven-proxy-releases: resource not reachable for org/scala-sbt#logging;0.13.5: res=http://repoaddress/artifactory/remote-repos/org/scala-sbt/logging/0.13.5/logging-0.13.5.pom
     trying http://repoaddress/artifactory/remote-repos/org/scala-sbt/logging/0.13.5/logging-0.13.5.jar
        tried http://repoaddress/artifactory/remote-repos/org/scala-sbt/logging/0.13.5/logging-0.13.5.jar
try to get credentials for: Artifactory Realm@repositorio.ginfes.intranet.local
authentication: k='Artifactory Realm@repositorio.ginfes.intranet.local' c='null'
HTTP response status: 401 url=http://repoaddress/artifactory/remote-repos/org/scala-sbt/logging/0.13.5/logging-0.13.5.jar
Run Code Online (Sandbox Code Playgroud)

恢复此日志消息,以避免滚动.我已经尝试使用java的http.proxy参数运行,如显示在这里 ,我已经加入这个解释仓库的问题,但同样的错误仍然发生.当我的项目配置为sbt 0.13.1时,不会发生此问题.当我使用sbt版本0.13.1和0.13.5执行项目时,会发生此错误

有没有办法解决这个身份验证问题?我错过了神器配置吗?

artifactory sbt

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

Scala反射更新案例类val

我在这里使用scala和slick,并且我有一个baserepository,负责执行我的类的基本crud.对于设计决策,我们确实有updateTime和createdTime列全部由应用程序处理,而不是由数据库中的触发器处理.这两个字段都是joda DataTime实例.这些字段在表中以两个特征(称为HasUpdatedAt和HasCreatedAt)定义

trait HasCreatedAt {
    val createdAt: Option[DateTime]
}

case class User(name:String,createdAt:Option[DateTime] = None) extends HasCreatedAt
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用反射来调用用户复制方法,以在数据库插入方法期间更新createdAt值.

在@vptron和@ kevin-wright评论之后编辑

我有这样的回购

trait BaseRepo[ID, R] {

    def insert(r: R)(implicit session: Session): ID
  }
Run Code Online (Sandbox Code Playgroud)

我只想实现插入一次,并且我想创建它以进行更新,这就是为什么我没有使用复制方法,否则我需要在使用createdAt列的任何地方实现它.

reflection scala

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

Akka Slick和ThreadLocal

我使用slick将数据存储在数据库中,然后我使用threadLocalSession来存储会话.

存储库用于执行crud,我有一个访问光滑存储库的Akka服务层.

我找到了这个链接,Adam Gent在这里询问了我在这里要求的东西:使用ThreadLocals的Akka和Java库

我关心的是akka如何处理消息,因为我将数据库会话存储在threadLocal中,我可以在同一个线程中同时处理两条消息吗?

假设:两个添加发送给用户服务的用户消息(A和B),并且消息A被部分处理,并且停止,线程B开始在线程A已经开始处理的同一线程中处理,这将存储会话在它的localSession?

scala thread-local akka

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