小编kry*_*nio的帖子

如何动态地向Source添加元素?

我有示例代码生成一个未绑定的源并使用它:

对象Main {

 def main(args : Array[String]): Unit = {

  implicit val system = ActorSystem("Sys")
  import system.dispatcher

  implicit val materializer = ActorFlowMaterializer()

  val source: Source[String] = Source(() => {
     Iterator.continually({ "message:" + ThreadLocalRandom.current().nextInt(10000)})
    })

  source.runForeach((item:String) => { println(item) })
  .onComplete{ _ => system.shutdown() }
 }
Run Code Online (Sandbox Code Playgroud)

}

我想创建实现的类:

trait MySources {
    def addToSource(item: String)
    def getSource() : Source[String]
}
Run Code Online (Sandbox Code Playgroud)

我需要使用多个线程,例如:

class MyThread(mySources: MySources) extends Thread {
  override def run(): Unit = {
    for(i <- 1 to 1000000) { // here will …
Run Code Online (Sandbox Code Playgroud)

scala akka akka-stream

23
推荐指数
2
解决办法
6046
查看次数

Spring liquibase 在应用程序崩溃时恢复

我有使用 liquibase 定义数据库迁移的 Spring Boot 应用程序。当我启动应用程序脚本时,等待 500 秒并检查应用程序的 http 状态。当它返回错误代码时,脚本会终止应用程序进程并尝试再次启动应用程序。应用程序有时会在启动过程中被终止,并且 liquibase 不会从databasechangeloglock. 当应用程序下次运行时它等待释放锁,但它不会发生并且应用程序一次又一次地被杀死。

在每个应用程序的日志中,最后一行是:

liquibase    : Waiting for changelog lock....
liquibase    : Waiting for changelog lock....
Run Code Online (Sandbox Code Playgroud)

您对如何在脚本中解决此问题有任何想法吗?

spring liquibase

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

如何使用管道作业的CopyArtifact插件传递从中复制工件的内部版本号?

如何传递在Pipeline Job中复制工件的构建号?因为默认此步骤复制来自上一个稳定构建的工件,并且我需要来自特定构建的复制工件(例如123).

我的管道代码在这里:

node {
  stage "Copy artifacts"
  step ([$class: 'CopyArtifact',
          projectName: 'other-project',
          filter: 'myapp.jar']);
}
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-workflow jenkins-pipeline

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

在剧本和任务中使用sudo有什么区别?

如果我想使用例如apt安装一些东西我可以创建playbook:

- hosts: xxx
  roles:
     - my-role
Run Code Online (Sandbox Code Playgroud)

并且在角色的tasks/main.yml中:

- name: install something
  sudo: yes
  apt: "name=something state=installed"
Run Code Online (Sandbox Code Playgroud)

但是,我可以在剧本中添加sudo:

- hosts: xxx
  sudo: yes
  roles:
     - my-role
Run Code Online (Sandbox Code Playgroud)

并从任务中删除它:

- name: install something
  apt: "name=something state=installed"
Run Code Online (Sandbox Code Playgroud)

两种解决方案都有效,但哪种解决方案更好?这个解决方案有区别吗?优点?缺点?

sudo ansible ansible-playbook

0
推荐指数
1
解决办法
283
查看次数