小编Mic*_*arz的帖子

将徽章链接到分支构建历史记录

当我正在寻找具有给定分支状态的徽章时,我正在使用branchURL中的参数.我想对指向分支的最新构建或构建历史的链接执行相同的操作.

如果目前无法做到这一点,我会非常乐意提供这样的功能.

travis-ci

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

如何使用复合键在Slick中过滤和更新表?

我有一张桌子:

trait Schema {
    val db: Database

    class CoffeeTable(tag: Tag) extends Table[Coffee](tag, "coffees") {
        def from = column[String]("from")
        def kind = column[String]("kind")
        def sold = column[Boolean]("sold")
    }

    protected val coffees = TableQuery[Coffee]
}
Run Code Online (Sandbox Code Playgroud)

我想更新已售出的条目.这是我最终得到的方法:

  def markAsSold(soldCoffees: Seq[Coffee]): Future[Int] = {
    val cmd = coffees
      .filter { coffee =>
        soldCoffees
          .map(sc => coffee.from === sc.from && coffee.kind === sc.kind)
          .reduceLeftOption(_ || _)
          .getOrElse(LiteralColumn(false))
      }
      .map(coffee => coffee.sold)
      .update(true)
    db.db.stream(cmd)
  }
Run Code Online (Sandbox Code Playgroud)

虽然它适用于一个小型soldCoffee集合,但它输入了数百个元素时严重失败:

java.lang.StackOverflowError
    at slick.ast.TypeUtil$$colon$at$.unapply(Type.scala:325)
    at slick.jdbc.JdbcStatementBuilderComponent$QueryBuilder.expr(JdbcStatementBuilderComponent.scala:311)
    at slick.jdbc.H2Profile$QueryBuilder.expr(H2Profile.scala:99)
    at …
Run Code Online (Sandbox Code Playgroud)

database scala slick

9
推荐指数
0
解决办法
294
查看次数

Spock性能问题

我在Spock中实现的规范的性能存在一些问题-特别是执行时间。在深入研究问题之后,我注意到它与设置规范有某种联系-我并不是setup()特别指方法。

在发现之后,我将@Shared注释添加到规范中声明的所有字段中,并且注释的运行速度比以前快2倍。于是,我想,那性能问题可能与ConcurrentHashMaprandom*方法(从公地lang3),但事实并非如此。

最后,我无奈地用以下方式修饰了规范中的所有字段:

class EntryFacadeSpec extends Specification {

  static {
    println(System.currentTimeMillis())
  }
  @Shared
  def o = new Object()
  static {
    println(System.currentTimeMillis())
  }
  @Shared
  private salesEntries = new InMemorySalesEntryRepository()
  static {
    println(System.currentTimeMillis())
  }
  @Shared
  private purchaseEntries = new InMemoryPurchaseEntryRepository()
  static { 
    println(System.currentTimeMillis())
  }

  ...
Run Code Online (Sandbox Code Playgroud)

有趣的是,无论哪个字段被声明为第一个字段,初始化该字段都需要花费数百毫秒的时间:

1542801494583
1542801495045
1542801495045
1542801495045
1542801495045
1542801495045
1542801495045
1542801495045
1542801495045
1542801495045
1542801495046
1542801495046
1542801495046
1542801495046
1542801495047
1542801495047
Run Code Online (Sandbox Code Playgroud)

有什么问题?如何节省这几百毫秒?

testing performance groovy spock

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

标签 统计

database ×1

groovy ×1

performance ×1

scala ×1

slick ×1

spock ×1

testing ×1

travis-ci ×1