小编Reu*_*ani的帖子

正则表达式匹配linux中的字符串"find"命令

我正在尝试以下方法以递归方式查找以.py或者结尾的文件.py.server:

$ find -name "stub*.py(|\.server)"
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

我尝试过各种变化:

$ find -name "stub*.(py|py\.server)"
Run Code Online (Sandbox Code Playgroud)

它们也不起作用.

一个简单的find -name "*.py"工作,所以怎么regex没有?

regex linux find

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

Schedulers.io()和Schedulers.computation()之间的区别是什么

在沙发基地,Observables

有什么区别:Schedulers.io()和Schedulers.computation()

observable couchbase rx-java

15
推荐指数
2
解决办法
6954
查看次数

使用鼠兔在RabbitMQ中同步和阻塞消耗

我想与阻塞同步使用队列(RabbitMQ).

注意:下面是准备好运行的完整代码.

系统设置使用RabbitMQ作为其排队系统,但我们的一个模块不需要异步消耗.

我尝试在BlockingConnection上使用basic_get ,它不会阻塞((None, None, None)立即返回):

# declare queue
get_connection().channel().queue_declare(TEST_QUEUE)
def blocking_get_1():

        channel = get_connection().channel()

        # get from an empty queue (prints immediately)
        print channel.basic_get(TEST_QUEUE)
Run Code Online (Sandbox Code Playgroud)

我也尝试使用消耗生成器,在长时间不消耗后,"连接已关闭"失败.

def blocking_get_2():
        channel = get_connection().channel()
        # put messages in TEST_QUEUE
        for i in range(4):
                channel.basic_publish(
                        '',
                        TEST_QUEUE,
                        'body %d' % i
                )
        consume_generator = channel.consume(TEST_QUEUE)
        print next(consume_generator)
        time.sleep(14400)
        print next(consume_generator)
Run Code Online (Sandbox Code Playgroud)

有没有办法像使用Queue.Queuepython 一样使用pika客户端使用RabbitMQ ?或类似的东西?

我现在的选择是忙等待(使用basic_get) - 但我宁愿使用现有系统来忙 - 等待,如果可能的话.

完整代码:

#!/usr/bin/env python
import pika
import time …
Run Code Online (Sandbox Code Playgroud)

python rabbitmq python-2.7 pika

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

调试 istio 速率限制处理程序

我正在尝试对我们的一些内部服务(网格内部)应用速率限制。

我使用了文档中的示例并生成了 redis 速率限制配置,其中包括(redis)处理程序、配额实例、配额规范、配额规范绑定和应用处理程序的规则。

这个 redis 处理程序:

apiVersion: config.istio.io/v1alpha2
kind: handler
metadata:
  name: redishandler
  namespace: istio-system
spec:
  compiledAdapter: redisquota
  params:
    redisServerUrl: <REDIS>:6379
    connectionPoolSize: 10
    quotas:
    - name: requestcountquota.instance.istio-system
      maxAmount: 10
      validDuration: 100s
      rateLimitAlgorithm: FIXED_WINDOW
      overrides:
      - dimensions:
          destination: s1
        maxAmount: 1
      - dimensions:
          destination: s3
        maxAmount: 1
      - dimensions:
          destination: s2
        maxAmount: 1
Run Code Online (Sandbox Code Playgroud)

配额实例(我目前只对按目的地进行限制感兴趣):

apiVersion: config.istio.io/v1alpha2
kind: instance
metadata:
  name: requestcountquota
  namespace: istio-system
spec:
  compiledTemplate: quota
  params:
    dimensions:
      destination: destination.labels["app"] | destination.service.host | "unknown"
Run Code Online (Sandbox Code Playgroud)

配额规范,如果我理解正确,每个请求收费 1:

apiVersion: config.istio.io/v1alpha2
kind: QuotaSpec …
Run Code Online (Sandbox Code Playgroud)

handler rate-limiting redis istio amazon-eks

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

在减少之前必须先完成地图吗?

我在大学的讲师说,(Hadoop)减少操作只能在所有地图操作完成后开始.

这与map-reduce流操作的输出形成对比,有时显示:

map 80% reduce 13%
map 80% reduce 27%
and then
map 100% reduce 27%
.
.
map 100% reduce 100%
Run Code Online (Sandbox Code Playgroud)

(我有一个地图减少了我家中的三个节点集群,我已经运行了一些流媒体作业).

考虑到我的讲师知道他在说什么,输出意味着什么?当reduce开始但地图没有完成时,工作状态是什么?

hadoop mapreduce

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

在 compose 中取消设置环境变量

我有一个需要两个环境变量的 Dockerfile:

ARG AWS_ACCESS_KEY_ID
ARG AWS_SECRET_ACCESS_KEY
Run Code Online (Sandbox Code Playgroud)

我使用以下命令通过我的撰写文件从主机传递它们:

build:
  # ...
  args:
    - AWS_ACCESS_KEY_ID
    - AWS_SECRET_ACCESS_KEY
Run Code Online (Sandbox Code Playgroud)

我的问题是,在某些流中有一个 IAM 角色集(并且没有环境变量),我不想使用环境变量。但即使它们在主机上不存在,它们似乎在构建过程中也被设置为空字符串。

我试过这个:

run if [ -z "$AWS_ACCESS_KEY_ID" ]; then unset AWS_ACCESS_KEY_ID; fi
run if [ -z "$AWS_SECRET_ACCESS_KEY" ]; then unset AWS_SECRET_ACCESS_KEY; fi

run env # see if set
Run Code Online (Sandbox Code Playgroud)

但它不起作用(即使未在主机环境中设置,变量仍然设置)。

我欢迎在构建 docker 时混合 env vars 和 IAM 角色的另一种解决方案。

docker docker-compose

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

为什么嵌套"yield from"语句(生成器委托)会产生终止的"None"值?

是否可以嵌套yield from语句?

简单的形式是显而易见的:

def try_yield1():
    x = range(3)
    yield from x
Run Code Online (Sandbox Code Playgroud)

哪个产生:

0
1
2
Run Code Online (Sandbox Code Playgroud)

但是,如果我有嵌套的生成器怎么办?

def try_yield_nested():
   x = [range(3) for _ in range(4)]
    yield from ((yield from y) for y in x)
Run Code Online (Sandbox Code Playgroud)

这会产生:

0
1
2
None # why?
0
1
2
None # ...
0
1
2
None # ...
Run Code Online (Sandbox Code Playgroud)

None如果我使用yield from它(为什么它是嵌套的)它为什么会产生?

我知道我可以这样做:

from itertools import chain

def try_yield_nested_alternative():
    x = [range(3) for _ in range(4)]
    yield from chain.from_iterable(x)
Run Code Online (Sandbox Code Playgroud)

这产生相同的输出而忽略了None(这是我期望的).我也可以写一个简单的循环: …

python yield generator python-3.x yield-from

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

数字后跟资本L.

什么512L意思?(或者可能是任何数字后跟资本L)

例:

uint sec 然后是一些带有表达式的代码: sec * 512L

(取自XV6代码 - mkfs.c)

c xv6

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

错误后重试相同的项目

我正在尝试使用rx-java构建一个健壮的处理管道,但我遇到了一个问题.

这是一个例子:

public static void main(String[] args) {
    AtomicInteger div = new AtomicInteger(-1);
    Observable.just(1, 1, 1).map(item -> 1 / div.getAndIncrement())
            .retry().subscribe(item -> System.out.println(item));
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下的输出是4项,因为非流可观察被重放,但这不相关所以为了简单起见,请忽略它.我添加了评论,显示了达到结果的计算和重新订阅的重点:

-1 // 1 / -1
// 1/0 (error) - resubscribes to observable
1 // 1 / 1
0 // 1 / 2
0 // 1 / 3
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为retry操作员(作为所有重试操作符)在传递错误通知后导致重新订阅.

我的预期输出是:

-1 // 1 / -1
// 1/0 (error) - resubscribe but resume erroneous item (1)
1 // 1 / 1
0 // 1 / …
Run Code Online (Sandbox Code Playgroud)

rx-java

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

通过终端删除大文件的第一个和最后一个字符

我有几个大文件(从 1GB 到 1TB),我想删除每个文件中的第一个和最后一个字符。

有什么快速的方法(最好使用简单的 bash 脚本)?我不需要保存旧文件。

linux file

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

`loop`和`with-redefs`不能很好地融合在一起

我有一些代码,我重构只是为了找出被破坏的东西loop.经过一些调试后,我发现loop并且with-redefs不能很好地一起玩.我意识到with-redefs在循环中使用它可能没有意义,但我没想到它不起作用.我不确定它是否有意.

这是我创建的MCVE,用于演示"问题":

(loop [test 3]
  (with-redefs []
    (if (zero? test)
      "done"
      (recur (dec test)))))
Run Code Online (Sandbox Code Playgroud)

这给了我:

不匹配的参数计数重复,预期:0 args,得到:1

with-redefs按预期删除工作:

(loop [test 3]
  (if (zero? test)
    "done"
    (recur (dec test))))
Run Code Online (Sandbox Code Playgroud)

并返回"done".

第一段代码不起作用的原因是什么?这是故意的吗?

clojure

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

Java接口未强制执行

我有以下类定义:

public class SyrianEdge extends BaseEdge<SyrianVertex, SyrianEdge> 
                        implements Weighted, Blockable{
    ...
}
Run Code Online (Sandbox Code Playgroud)

和界面:

public interface Weighted{
    public long getWeight();
}
Run Code Online (Sandbox Code Playgroud)

SyrianEdge类没有方法,public long getWeight()但一切似乎编译得很好.

我错过了什么?为什么接口不强制类有它的方法?

java generics

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

嗨,有谁能帮我理解这段代码中发生了什么?

我知道这是一个递归函数,它返回表示数字的方式的数量,n作为不大于数字的总和k,按顺序,但我无法理解它是如何完成的.

def all_sums(n, k):

    if n == 0:
        return 1
    elif n < 0: 
        return 0
    else:
        res = 0
        for i in range(1, k+1):
            res = res + all_sums(n-i, k)
        return res
Run Code Online (Sandbox Code Playgroud)

python

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