小编leo*_*ion的帖子

使用正确的布尔值将 psql 结果导出到 csv

我目前正在 java 服务中使用 copyManager 从 psql 获取 csv 字符串。

String selectQuery = "SELECT * FROM table";
copyManager.copyOut("COPY (" + selectQuery + ") TO STDOUT WITH CSV HEADER", csaString);
Run Code Online (Sandbox Code Playgroud)

但在结果字符串中,所有布尔值都是 as 't'/'f'。如何获取布尔值'true'or 'false'。我可以提供一些配置来做到这一点吗?

该表有很多列,因此如果我使用案例来更改它,我还必须指定我想避免的所有其他列。

java csv postgresql

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

pushd 没有进入指定目录

我正在尝试使用 pushd

 #!/bin/bash

 function cloneAll {
   [ -d ~/mapTrials ] || mkdir ~/mapTrials
   pushd '~/mapTrials/'
   echo $(pwd)
   popd
}
Run Code Online (Sandbox Code Playgroud)

echo $(pwd)为我提供了与我从中调用脚本相同的工作目录。

我在其他 SO 答案中读到 pushd 仅适用于子进程,我必须为其创建别名。我也这样做了。

我尝试执行一些命令,例如mkdir查看它的创建位置。它是在我调用脚本的目录中创建的,而不是在pushd.

我如何让这个工作?如何进入 shell 脚本中的特定目录,然后在该目录中执行命令?

提前致谢。

directory bash shell pushd

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

遍历 terraform 中的地图列表列表

考虑我有一个变量,它是地图列表的列表。

例子:

    processes = [
      [
       {start_cmd: "a-server-start", attribute2:"type_a"}, 
       {start_cmd: "a-worker-start", attribute2:"type_b"}
       {start_cmd: "a--different-worker-start", attribute2:"type_c"}
      ],
      [
       {start_cmd: "b-server-start", attribute2:"type_a"},
       {start_cmd: "b-worker-start", attribute2:"type_b"}
      ]
    ]
Run Code Online (Sandbox Code Playgroud)

在每次迭代中,我需要取出地图数组,然后遍历该数组并取出地图的值。我如何在 terraform 中实现这一目标?

我考虑过有两个计数并做一些算术来欺骗 terraform 执行相似的嵌套迭代检查参考here。但在我们的例子中,内部数组中的映射数量可能会有所不同。

此外,我们目前正在使用 0.11 terraform 版本,但不介意使用 alpha 0.12 版本的 terraform,如果可以在该版本中实现这一点。

编辑:

添加了我将如何使用此变量:

resource “create_application” “applications” {
  // Create a resource for every array in the variable processes. 2 in this case
  name        = ""              
  migration_command = "" 

  proc {                
    // For every map create this attribute for the resource. …
Run Code Online (Sandbox Code Playgroud)

iteration nested terraform

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

在 terraform 中合并列表内的地图

我有一个这样的地图列表 -

[
  {
    "outer_key_1" = [
      {
        "ip_cidr" = "172.16.6.0/24"
        "range_name" = "range1"
      },
      {
        "ip_cidr" = "172.16.7.0/24"
        "range_name" = "range2"
      },
      {
        "ip_cidr" = "172.17.6.0/24"
        "range_name" = "range3"
      },
      {
        "ip_cidr" = "172.17.7.0/24"
        "range_name" = "range4"
      },
    ]
  },
  {
    "outer_key_2" = [
      {
        "ip_cidr" = "172.16.5.0/24"
        "range_name" = "range5"
      },
      {
        "ip_cidr" = "172.17.5.0/24"
        "range_name" = "range6"
      },
    ]
  },
]
Run Code Online (Sandbox Code Playgroud)

我想合并列表中的地图。这是在一个输出变量中module.module_name.module_op

所需输出:


{
    "outer_key_1" = [
      {
        "ip_cidr" = "172.16.6.0/24"
        "range_name" = "range1"
      }, …
Run Code Online (Sandbox Code Playgroud)

for-loop terraform

6
推荐指数
2
解决办法
6636
查看次数

如何使用Rust中的现有模式文件验证JSON?

我正在尝试在给定JSON文件和架构的情况下验证JSON.

架构:

{
    "Address":{
        "properties":{
            "City":{
                "type":"string"
            },
            "Country":{
                "type":"string"
            },
            "Street":{
                "type":"string"
            }
        },
        "type":"object"
    }
}
Run Code Online (Sandbox Code Playgroud)

JSON:

{
    "Address":{
        "Street":"Downing Street 10",
        "City":"London",
        "Country":"Great Britain"
    }
}
Run Code Online (Sandbox Code Playgroud)

我的Rust文件:

#[macro_use]
extern crate serde_derive;
extern crate serde;
extern crate serde_json;
extern crate valico;

use std::fs::File;
use std::io::Read;
use serde_json::Value;

use valico::json_dsl;
use valico::json_schema;

fn main() {
    let mut schemaFile = File::open("src/schema.json").unwrap();
    let mut jsonSchemaString = String::new();
    schemaFile.read_to_string(&mut jsonSchemaString).unwrap();

    let json_v4_schema: Value = serde_json::from_str(&jsonSchemaString).unwrap();


    let state = jsonSchemaString.process(&mut json_v4_schema, &None); //this …
Run Code Online (Sandbox Code Playgroud)

validation json rust

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

如果代码已经运行,则不应执行

我有一些必须定期运行的功能。我为此使用了股票行情自动收录器。但是,如果股票代码已经在运行,并且时间间隔再次过去,则不应再次执行。

package main

import (
    "fmt"
    "time"
)

func main() {
    ticker := time.NewTicker(3*time.Second)
    flag := 0
    defer ticker.Stop()
    for {
        select {
        case t := <-ticker.C:
            flag = flag + 1
            if (flag % 2 ==0 ) {
                time.Sleep(time.Second*4)
            }   
            fmt.Println("Current time: ", t)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/2xV2MYInn4I

在操场上,自动收报机每 3 秒打印一次,但是自动收报机每偶数转一次,作业所花费的时间就比间隔时间要多。我希望它不会运行并删除那些蜱虫。

我该怎么做呢?

go ticker

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

如何使用 Serde 反序列化带有读者引用的结构?

我有这些结构:

#[derive(Debug, Serialize, Deserialize)]
pub struct GGConf<'a> {
    #[serde(alias = "ssh")]
    #[serde(rename = "ssh")]
    #[serde(default)]
    #[serde(borrow)]
    pub ssh_config: Option<SSHConfig<'a>>,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct SSHConfig<'a> {
    #[serde(alias = "privateKey")]
    #[serde(rename = "privateKey")]
    private_key: &'a str,

    username: &'a str,
}
Run Code Online (Sandbox Code Playgroud)

当我从 YAML 文件读取时发生反序列化:

let mut config: GGConf = serde_yaml::from_reader(file)?;
Run Code Online (Sandbox Code Playgroud)

在编译时,我收到一个错误:

#[derive(Debug, Serialize, Deserialize)]
pub struct GGConf<'a> {
    #[serde(alias = "ssh")]
    #[serde(rename = "ssh")]
    #[serde(default)]
    #[serde(borrow)]
    pub ssh_config: Option<SSHConfig<'a>>,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct SSHConfig<'a> {
    #[serde(alias = "privateKey")]
    #[serde(rename …
Run Code Online (Sandbox Code Playgroud)

yaml lifetime rust deserialization serde

4
推荐指数
2
解决办法
3526
查看次数

通过 nomad 在 docker 中挂载卷

我正在尝试通过 nomad 运行 docker 容器。该作业规范旨在使用 java docker 映像运行 docker 容器。来自 localhost 路径的卷应该安装到 docker 容器上。该卷将包含一些 java 文件。容器应按照命令指定的方式编译 java 文件。

期望:应该完成 java 程序的编译,并且应该在容器和本地主机路径中创建一个类文件。

职位规格文件:

job "java" {
  datacenters = ["dc1"]
  type = "service"
  
  update {
    max_parallel = 1
    healthy_deadline = "3m"
    progress_deadline = "10m"
    auto_revert = false
    canary = 0
  }

  migrate {
    max_parallel = 1
    health_check = "checks"
    min_healthy_time = "10s"
    healthy_deadline = "5m"
  }

  group "compile" {
    count = 1
    
    service {
      name = "java-compile"
      tags = ["java", "compile"]
    } …
Run Code Online (Sandbox Code Playgroud)

docker nomad

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

未绑定的记录字段ID错误

我正在尝试“理性反应”。当我尝试向其中一个组件添加密钥时,我遇到了一个问题。

我有一个TodoApp,它以TodoItem的列表作为状态。当我没有TodoItem的密钥时,该应用程序运行正常。但是,当我添加它时,出现编译错误。我在这里添加文件以供参考:

TodoItem.re:

type item = {
  id: int,
  title: string,
  completed: bool
};

let lastId = ref(0);

let newItem = () => {
  lastId := lastId^ + 1;
  {id: lastId^, title: "Click a button", completed: false}
};

let toString = ReasonReact.stringToElement;

let component = ReasonReact.statelessComponent("TodoItem");

let make = (~item, children) => {
  ...component,
  render: (self) =>
    <div className="item">
      <input _type="checkbox" checked=(Js.Boolean.to_js_boolean(item.completed)) />
      (toString(item.title))
    </div>
};
Run Code Online (Sandbox Code Playgroud)

TodoApp.re:

let toString = ReasonReact.stringToElement;

type state = {items: list(TodoItem.item)};

type action =
  | …
Run Code Online (Sandbox Code Playgroud)

ocaml type-inference reason

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

terraform 中合并失败

考虑我有一个变量 -

[
  {
    "outer_key_1" = [
      {
        "ip_cidr" = "172.16.6.0/24"
        "range_name" = "range1"
      },
      {
        "ip_cidr" = "172.16.7.0/24"
        "range_name" = "range2"
      },
      {
        "ip_cidr" = "172.17.6.0/24"
        "range_name" = "range3"
      },
      {
        "ip_cidr" = "172.17.7.0/24"
        "range_name" = "range4"
      },
    ]
  },
  {
    "outer_key_2" = [
      {
        "ip_cidr" = "172.16.5.0/24"
        "range_name" = "range5"
      },
      {
        "ip_cidr" = "172.17.5.0/24"
        "range_name" = "range6"
      },
    ]
  },
]
Run Code Online (Sandbox Code Playgroud)

我能够合并列表内的地图以获得此输出 -

{
    "outer_key_1" = [
      {
        "ip_cidr" = "172.16.6.0/24"
        "range_name" = "range1"
      },
      {
        "ip_cidr" …
Run Code Online (Sandbox Code Playgroud)

maps for-loop terraform hcl

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

如何知道函数何时完成

有什么方法可以找出函数何时完成.我需要运行另一个函数,但只能在一个函数完成后运行.像这样......

$(document).ready(function(){});
Run Code Online (Sandbox Code Playgroud)

除了功能而不是文档.

javascript jquery

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

木偶依赖管理

假设我有一个安装packages(profile::base::tools)的类和另一个定义profile::base::yum这些包所需的yumrepos()的类.

tools.pp:

class profile::base::tools {
   $packages = [
      'package1',
      'package2'
   ]

   package { $packages:
     ensure => present,
   }
}
Run Code Online (Sandbox Code Playgroud)

目前它的运行方式是通过base.pp:

base.pp:

include profile::base::yum 
include profile::base::tools

Class['profile::base::yum'] -> [
    Class['profile::base::tools']]     
Run Code Online (Sandbox Code Playgroud)

所以当我运行base.pp它时首先创建yum repos然后安装包.目前,tools.pp首先要求yumrepos定义的依赖关系仅在提及中提及base.pp.

我的问题是,如果我tools.pp单独运行(出于测试目的),它不会知道依赖性,因此会失败.我可以添加include profile::base::yumtools.pp类,但想知道如果为每个类标准的了解的依赖,即使它已经在别处定义的(像base.pp)

standards dependencies puppet

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

使用javascript闭包添加两个数字

我如何使用闭包来实现这个???

addTogether(2)(3);

我还需要相同的函数来返回正常添加,因为addTogether(2,3)返回5.

javascript closures

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