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) 我正在一个项目中工作,我们使用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来完成这项任务?
我有一个包含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将我的代码包含在类路径中.这个问题是间歇性的,我不知道如何跟踪它为什么会发生.任何人在配置一个知道如何解决它的火花簇时遇到过这个问题?
我有一个由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执行项目时,会发生此错误
有没有办法解决这个身份验证问题?我错过了神器配置吗?
我在这里使用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列的任何地方实现它.
我使用slick将数据存储在数据库中,然后我使用threadLocalSession来存储会话.
存储库用于执行crud,我有一个访问光滑存储库的Akka服务层.
我找到了这个链接,Adam Gent在这里询问了我在这里要求的东西:使用ThreadLocals的Akka和Java库
我关心的是akka如何处理消息,因为我将数据库会话存储在threadLocal中,我可以在同一个线程中同时处理两条消息吗?
假设:两个添加发送给用户服务的用户消息(A和B),并且消息A被部分处理,并且停止,线程B开始在线程A已经开始处理的同一线程中处理,这将存储会话在它的localSession?
scala ×4
akka ×1
ansible ×1
apache-spark ×1
artifactory ×1
reflection ×1
sbt ×1
thread-local ×1