小编Pra*_*nna的帖子

有没有办法在zookeeper中添加观察者队列?

我将node-zookeeper-client用作java脚本作为zookeeper客户端.

我有这样的事情:

const setWatch = (path, functionToExecuteOnTrigger) => {
  client.getData(path, (event) => {
      // watcher set here
      functionToExecuteOnTrigger(event);
  }, null)
  // null because we are only setting watch here and do not need data
}
Run Code Online (Sandbox Code Playgroud)

此功能将path在zookeeper中设置一个手表.一旦触发了手表,将调用观察者回调并调用在手表上调用的适当功能.

对于这样设置的手表:

setWatch('/data1', function1);
setWatch('/data2', function2);
Run Code Online (Sandbox Code Playgroud)

因此,在data1节点中触发的监视执行function1,为data2节点触发的监视执行function2

现在,如果我必须不断监视节点,以便每次更改某些内容,我都必须在触发后立即重新注册:

const setWatch = (path, functionToExecuteOnTrigger) => {
  client.getData(path, (event) => {
      // watcher set here
      // immediately set another watch for the same function
      setWatch(path, functionToExecuteOnTrigger);
      functionToExecuteOnTrigger(event);
  }, null) …
Run Code Online (Sandbox Code Playgroud)

node.js apache-zookeeper

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

如何检查 ArangoDB 中是否已存在集合

假设Col1我的数据库中已经存在一个集合。所以,做类似的事情:

var col = db.collection('Col1');
col.save({"name":"something"});
Run Code Online (Sandbox Code Playgroud)

会工作得很好。

Col2但是,如果我的数据库中尚不存在的集合尝试使用相同的东西,即

var col = db.collection('Col2');
col.save({"name":"something"})
Run Code Online (Sandbox Code Playgroud)

也会工作得很好。只是它不存在并且不会显示在我的数据库中。如果它抛出一些错误或我可以使用的内容trycatch结果语句。但既然这是不可能的,我怎么知道集合是否已经存在?

node.js arangodb arangojs

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

从 github actions 运行 docker 找不到在上一步中添加的文件

这将是一本不错的读物,所以我非常感谢您的帮助:bow:

我正在尝试编写一个 github 操作配置来执行以下两个任务:

  1. autodeploy.xar在构建文件夹中创建一个文件
  2. 使用该文件夹以及其中的所有其他文件来创建 docker 映像。

构建过程找不到上一步创建的文件夹/文件。所以我尝试了三件事:

  1. 尝试使用上一步中创建的文件(在 github actions 中的同一作业中),但无法运行它。

    • 构建过程抛出一个错误,抱怨该文件不存在:Error: buildx failed with: error: failed to solve: lstat /var/lib/docker/tmp/buildkit-mount3658977881/build/autodeploy.xar: no such file or directory
  2. 尝试构建两个作业,一个用于启动文件,另一个用于needs第一个构建 docker。但是,这会产生与步骤 1 相同的错误。

  3. 尝试从任务 1 构建 docker 镜像

    • 这一步只是从 github actions 运行 bash 脚本。
    • 我尝试从 shell 脚本内部运行docker build .,但 github 操作抱怨 "docker build" requires exactly 1 argument.
    • 我提供了正确的参数,因为在回显命令时我清楚地看到了输出docker build . --file Dockerfile --tag ***/***:latest --build-arg ADMIN_PASSWORD=***

这一定是非常微不足道的事情,但我不知道出了什么问题。我认为其中任何一种方法的解决方案都应该有效。

再次感谢您经历这一切。请在下面找到 GH 操作、workflow.sh 和 docker 文件:

GitHub …

docker github-actions

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

通过数组解构分配值时首先制作 ...rest 项

我知道

var a = [12,23,132,12,3];
var [first, ...rest] = a;
Run Code Online (Sandbox Code Playgroud)

将给予first = 12rest = [23,132,12,3]

我想做的是将 makerest作为第一个变量。像这样的东西

var a = [12,23,132,12,3];
var [...rest, last] = a;
Run Code Online (Sandbox Code Playgroud)

应该给我rest = [12,23,132,12]last = 3

但这是错误的语法,我会收到一个错误,内容是

SyntaxError: Rest element must be last element
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过反转数组然后像这样解构来实现这一点

var a = [12,23,132,12,3];
var [last, secondLast, ...rest] = a.reverse();
Run Code Online (Sandbox Code Playgroud)

这将给我last = 3secondLast = 12然后rest = [132,23,12]我将再次不得不reverse()休息。

我还可以使用索引并直接访问数组元素。但这并不是我们所希望的。

我的问题是,还有其他方法可以实现我想要做的事情(使用休息运算符吗?)?

javascript arrays destructuring variable-assignment ecmascript-6

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

异步等待的性能是否比正常Promise更高?

我在node.js版本7中有一个相当大的项目。我打算切换到8.9 LTS节点并替换Promise callbacksasync await。该项目需要高性能的计算机,并且有很多高内存消耗操作。所以问题是,使用`async await会降低项目的性能吗?

我没有足够的时间来实际升级节点,并承诺异步等待并将重构的代码与项目的先前版本进行比较。因此,在从promise切换到async await期间,有关性能下降或升高的任何信息都将有所帮助

javascript asynchronous node.js promise async-await

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

模型 django 中唯一随机默认值的迁移问题

我想向我已有的模型添加一个名为 的新字段color。我希望它是唯一的,并且默认情况下它是随机选择的。所以我要做的是:

color = models.CharField(max_length=15, default=random_color, unique=True)
Run Code Online (Sandbox Code Playgroud)

我的random_color样子是这样的

def random_color():
"""
Returns:
    [string] : returns a rgb value in hex string
"""
while True:
    generated_color = f'#{random_hex()}{random_hex()}{random_hex()}'
    if not MyModel.objects.filter(color=generated_color):
        return generated_color
Run Code Online (Sandbox Code Playgroud)

我遵循与此处提供的类似逻辑。

现在这种方法的问题是没有color可以开始寻找的东西。

我还希望我的迁移将一堆默认随机颜色值添加到我已经存在的表中。

我该如何解决?

python django model

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

如何在 FastAPI 中将查询参数的模式编写为变量

我有一个获取函数,它接受多个查询参数,可能如下所示:

def get(
   key: Optional[str] = "key"
   value: Optional[str] = "value"
   param1: Optional[int] = -1
)
Run Code Online (Sandbox Code Playgroud)

我想要做的是,我想将这些参数定义放在一个单独的变量中。可以做这样的事情吗?

param_definition = { # some struct here, or maybe a Model class
   key: Optional[str] = "key"
   value: Optional[str] = "value"
   param1: Optional[int] = -1
}


def get(*params: param_definition):
   ...
Run Code Online (Sandbox Code Playgroud)

这可以做到吗?如果没有,是否有类似且更易于维护的事情可以在这里完成?

python api fastapi

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

Postgresql 错误:小时“16”对于 12 小时制无效

8/31/2020-16:29:31 PM我的表一栏中有submitted_date。我尝试使用该函数将其转换为时间戳to_timestamp

我输入的命令是:

select TO_TIMESTAMP(submitted_date, 'MM/DD/YYYY-HH24:MI:SS PM') from table;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ERROR:  hour "16" is invalid for the 12-hour clock
HINT:  Use the 24-hour clock, or give an hour between 1 and 12.
Run Code Online (Sandbox Code Playgroud)

我知道这很愚蠢。但我在这里做错了什么?我试图弄清楚这一点,但我却无能为力。

postgresql

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

带嵌套三元运算符的字符串连接忽略该字符串

我发现以下两个陈述之间存在差异.

message = "a is " + "greater than" if a > 10 else "less than" if a <10 else "equal to" + " 10"
Run Code Online (Sandbox Code Playgroud)

message = "a is " + ("greater than" if a > 10 else ("less than" if a <10 else "equal to")) + " 10"
Run Code Online (Sandbox Code Playgroud)

有人可以解释这里发生了什么

python python-3.x

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