小编Mik*_*sov的帖子

如何使用kubectl获取当前上下文的当前名称空间?

我正在尝试使用获取当前使用的Kubernetes上下文的名称空间kubectl

我知道有一个命令,kubectl config get-contexts但我看到它无法在json / yaml中输出。我随附的唯一脚本是这样的:

kubectl config get-contexts --no-headers | grep '*' | grep -Eo '\S+$'
Run Code Online (Sandbox Code Playgroud)

kubernetes

13
推荐指数
5
解决办法
4089
查看次数

在许多中拆分流

我想知道是否有一种优雅的方式来实现这样的目标:

val l = Stream.from(1)

val parts = l.some_function(3)  //any number

parts.foreach( println(_) )

> 1,4,7,10... 
> 2,5,8,11...
> 3,6,9,12...
Run Code Online (Sandbox Code Playgroud)

实际上我需要在Streams上进行并行化这样的操作 - 在多个actor之间拆分数据而不将整个内容加载到内存中.

scala scala-collections

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

并行收集处理大于内存大小的数据

有没有一种简单的方法来使用scala并行集合而无需将完整集合加载到内存中?

例如,我有一个大型集合,我想在一个小块上并行执行特定操作(折叠),这个块适合内存,而不是另一个块等等,最后重新组合所有块的结果.

我知道,可以使用actor,但是使用par-collections会非常好.

我写了一个解决方案,但它并不好:

  def split[A](list: Iterable[A], chunkSize: Int): Iterable[Iterable[A]] = {
    new Iterator[Iterable[A]] {
      var rest = list
      def hasNext = !rest.isEmpty
      def next = {
        val chunk = rest.take(chunkSize)
        rest = rest.drop(chunkSize)
        chunk
      }
    }.toIterable
  }                                               

  def foldPar[A](acc: A)(list: Iterable[A], chunkSize: Int, combine: ((A, A) => A)): A = {
    val chunks: Iterable[Iterable[A]] = split(list, chunkSize)
    def combineChunk: ((A,Iterable[A]) => A) = { case (res, entries) => entries.par.fold(res)(combine) }
    chunks.foldLeft(acc)(combineChunk)
  }                                               

  val chunkSize = 10000000                        
    val x = …
Run Code Online (Sandbox Code Playgroud)

parallel-processing scala parallel-collections

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

超时后停止fs2流

我想使用类似于take(n: Int)时间维度的函数: consume(period: Duration。因此,如果发生超时,我希望流终止。我知道我可以将流编译为类似内容IO[List[T]]并取消它,但是那样我会丢失结果。实际上,我想将无尽的流转换成有限的流,并保留结果。

更多关于问题的更广泛范围。我有来自消息传递代理的无尽事件流,但是我也有轮换凭证来连接到代理。因此,我想要的是消耗事件流一段时间,然后停止,获取新的凭据,再次连接到代理,以创建新的流并将两个流连接为一个。

scala fs2

5
推荐指数
2
解决办法
211
查看次数

Slick 使用的连接数多于线程数的情况

我对 Slick 文档中的声明感到困惑:

在对事务内的非数据库操作进行排序时,Slick 将使用比池中线程更多的连接。

这是否意味着 Slick 打开一个事务,然后使用不同的数据库连接(在不同的线程中)在该事务中执行操作?我做对了吗?我从没想过可以在多个连接之间保持事务打开。

scala relational-database slick

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

找不到Fs2 Stream.Compiler(找不到隐式值Compiler [[x] F [x],G])

我正在尝试编译流,但不知何故Compiler不在范围内,将其置于范围内需要什么上下文限制?

import cats.Monad

def compilingStream[F[_]: Monad]: F[List[Int]] = {
  val stream: fs2.Stream[F, Int] = fs2.Stream.emit(1).covary[F]
  stream.head.compile.toList
}


error: could not find implicit value for parameter compiler: fs2.Stream.Compiler[[x]F[x],G]
         stream.head.compile.toList
                     ^

Run Code Online (Sandbox Code Playgroud)

scala fs2

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

比较Java中对象的更优雅方式

Java有一个接口Comparator<T>,它有一个方法int compare(T o1, T o2).

编辑:

我错了:

返回的整数必须是-1第一个对象小于第二个,1如果第二个小于第一个,0如果它们相等.

文件说:

第一个参数的负整数,零或正整数小于,等于或大于第二个参数.

所以我重新提出我的问题:是否有更优雅的方式来比较对象,而不是记住comparator.compare(o1, o2) < 0实际意味着第一个对象小于第二个对象?

java apache-commons guava

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

在 PostgreSQL 中更改密码时打开会话会发生什么情况?

假设在 PostgreSQL 中,特定用户有打开的会话,当密码更改时,它们会发生什么?

我认为有以下几点:

  1. 不允许发出密码更改命令
  2. 所有会话在完成最后一个查询后终止
  3. 打开的会话将继续工作,直到明确关闭或超时。

postgresql

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