小编Ond*_*žka的帖子

TypeScript - 传递一个类作为参数,以及反射

我正在编写一个通用的解组器。它将图形数据库数据转换为生成的 TypeScript (1.8.7) 模型类。输入是 JSON。输出应该是模型类的实例。
我的最终目标是创建类似 Hibernate OGM 的东西,仅适用于 Tinkerpop Frames 和 TypeScript,中间有 REST 端点。

将类作为参数传递并访问它的静态成员的正确方法是什么?我想要这样的东西:

SomeModel some = <SomeModel> unmarshaller.fromJSON({/*Object from JSON*/}, SomeModel);
Run Code Online (Sandbox Code Playgroud)

我试着写一个方法。不确定我是否朝着正确的方向前进,请随时提出不同的方法。

public fromJSON(input: Object, clazz: typeof FrameModel): FrameModel
{
    // This only demonstrates access to Framemodel's metadata 
    // about original Java model classes.
    clazz.graphPropertyMapping;
    clazz.graphRelationMapping;

    let result = {};
    ...
    return result;
}
...
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在 Plunker 上执行此操作时,我遇到了无用的堆栈跟踪的执行错误。

模型超类如下所示:

/**
 * Things common to all Frames models on the Typescript side.
 */
export class FrameModel
{ …
Run Code Online (Sandbox Code Playgroud)

reflection marshalling unmarshalling typescript

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

TypeScript - 将类存储为映射值?

我的课很少。Test~课程延长FrameModel

如何创建从string到 的子类的映射FrameModel

import FrameModel from '../../FrameModel';
import TestShipModel from './TestGeneratorModel';
import TestGeneratorModel from './TestGeneratorModel';
import TestPlanetModel from './TestGeneratorModel';

export class DiscriminatorMappingData
{
    static mapping: { [key: string]: typeof FrameModel } = {
        "TestShip": TestShipModel,
        "TestGenerator": TestGeneratorModel,
        "TestPlanet": TestPlanetModel,
    }
}
Run Code Online (Sandbox Code Playgroud)

这最终会出现错误:

DiscriminatorMappingData.ts(8,5):错误 TS2322:类型 '{ [x: string]: typeof "...' 不可分配给类型 '{ [key: string]: typeof "...'。
索引签名不兼容。
类型 'typeof "...models/T...' 不可分配给类型 'typeof ".../FrameModel"'。
类型 'typeof ".../models/T.. 中缺少属性 'FrameModel'。 .'.

我认为这可以用泛型来完成,但我不确定如何做。

dictionary class typescript

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

TypeScript 编译器:生成的源、根目录、排除和符号链接

我有一个 TypeScript 2.0.3 项目的设置:

src/main/webapp/tsconfig.json
src/main/webapp/app -- contains .ts files
src/main/webapp/app/tsModels -- a symlink to ../../../../target/tsModels
target/tsModels/   -- contains .ts files
Run Code Online (Sandbox Code Playgroud)

目标是target/tsModels编译.ts 文件。

首先,与"rootDir": "."tsc抱怨:

错误 TS6059:文件“[...]/target/tsModels/AboutWindupModel.ts”不在“rootDir”“[...]/src/main/webapp”下。'rootDir' 应包含所有源文件。

所以我试过了

{
  "compilerOptions": {  ...,
    //"rootDir": ".",
    "rootDirs": [".", "../../../target/tsModels"],
  },
} 
Run Code Online (Sandbox Code Playgroud)

还是一样。尝试:

{
  "compilerOptions": {
    //"rootDir": ".",
    "rootDirs": [".", "../../../target/tsModels"],
  },
  "exclude": [
    "node_modules",
    "target/**",
    "../../../target/**", 
    "../../../target/**/*",
    "../../../target/tsModels/*", 
    "typings/main",
    "typings/main.d.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

但仍然得到那个错误。

所以似乎tsc不能正确处理符号链接,总是检查规范路径。

所以我想,好吧,让我们tsModels直接编译文件。所以我删除了符号链接并尝试:

  "compilerOptions": {
    //"rootDir": ".",
    "rootDirs": [".", …
Run Code Online (Sandbox Code Playgroud)

symlink compilation typescript tsc

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

显示每个http请求angular2的加载栏

我正在将我的应用程序从angularjs移动到angular2.我用的Angular Loading Bar是哪个

使用角度拦截器的自动装载杆.它自动运行,因此只需将其作为依赖项包含它,它将自动显示$ http请求的进度.

更多信息

我试图在angular2中找到类似的插件.我遇到了一些,ng2-slim-loading-bar但在这里我必须手动管理进度.对于每个http请求,我必须手动启动进度条,然后完成它.

那么,是否有任何现有的插件可以完成Angular Loading Bar与angularjs 完全相同的操作.或者我如何修改任何现有的插件,使其表现得像这样.

loading progress-bar angular-http-interceptors angular

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

终止 postgres 复制模式连接的正确方法

我有以下代码可以在 PostgreSQL 9.4 中启用逻辑解码:

pg_recvlogical -h localhost --slot test_slot --create-slot
pg_recvlogical -h localhost --slot test_slot --start -f -
Run Code Online (Sandbox Code Playgroud)

我生成一个 node.js 子进程来运行此代码并侦听更改,但是我不确定终止连接的正确过程是什么。我通常只是CNTRL+C从命令行或杀死代码中的子进程,但我总是收到错误pg_recvlogical: unexpected termination of replication stream:。终止此连接的正确方法是什么?

postgresql postgresql-9.4

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

在加特林请求超时

我正在使用maven运行我的Gatling(Scala)性能测试。

当我将用户数从100增加到150时,它给了我请求超时的问题。

如果将用户数设置为300,则在模拟日志中会出现以下错误。

// Gatling scenario injection
val scn =  scenario("UATEnvironmentTest")
.exec(http("AdminLoginRequest")
.post("/authorization_microservice/oauth/token")
.headers(headers_1).body(RawFileBody("Login.txt"))
.check(jsonPath("$.access_token")
.saveAs("auth_token")))
.pause(2)  

setUp(scn.inject(nothingFor(5 seconds),atOnceUsers(50),rampUsers(250) over(10 seconds))).protocols(httpProtocol)  
Run Code Online (Sandbox Code Playgroud)

错误:-jucTimeoutException:120000 ms后读取到/ IP:80的超时组无法建立请求Request_1:未定义名为“ auth_token”的属性

以下是配置:

//Maven configuration-pom.xml
java.version 1.8
gatling.version 2.2.3
gatling-plugin.version 2.2.1
scala-maven-plugin.version 3.2.2
// Gatling.conf file
connectTimeout 120000                         
handshakeTimeout 120000                       
pooledConnectionIdleTimeout 120000                  
readTimeout 120000                             
requestTimeout 120000                
Run Code Online (Sandbox Code Playgroud)

scala maven gatling

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

如何在 Kubernetes 中隔离每个分支环境的 CI 管道?

我们正在开发利用 AWS 中的 Docker/Kubernetes 的 CI/CD 管道。这个话题在Kubernetes CI/CD 管道有所涉及。

我们想为每个 SCM 分支创建(并销毁)一个新环境,因为在合并之前有一个 Git 拉取请求。

我们将为此提供一个 Kubernetes 集群。

在开发团队的原型设计过程中,我们想到了 Kubernetes 命名空间。看起来很合适:对于每个分支,我们创建一个 namespace ns-<issue-id>

但是这个想法被 dev-ops 原型设计师驳回了,没有太多解释,只是说“我们不这样做,因为 RBAC 导致它很复杂”。而且很难得到一些详细的原因。

但是,出于 CI/CD 的目的,我们不需要 RBAC - 所有人都可以无限制地运行,没有配额,我们只需要为每个环境设置一个单独的网络。

出于这种目的使用命名空间是个好主意吗?在阅读了有关 namespaces 的 Kubernetes 文档后,我仍然不确定。

如果没有,有没有更好的方法?理想情况下,我们希望避免使用 Helm,因为它具有我们可能不需要的复杂程度。

networking namespaces docker kubernetes

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

Docker中的Docker - 卷不能正常工作:第1级容器中的文件已满,第2层中为空

我在Docker中运行Docker(专门用于运行Jenkins,然后运行Docker构建器容器来构建项目映像,然后运行这些,然后运行测试容器).

这就是jenkins图像的构建和启动方式:

docker build --tag bb/ci-jenkins .
mkdir $PWD/volumes/
docker run -d --network=host  \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /usr/bin/docker:/usr/bin/docker \
  -v $PWD/volumes/jenkins_home:/var/jenkins_home \
  --name ci-jenkins bb/ci-jenkins
Run Code Online (Sandbox Code Playgroud)

詹金斯工作正常.但是有一个Jenkinsfile基础的工作,运行这个:

docker run -i --rm -v /var/jenkins_home/workspace/forkMV_jenkins-VOLTRON-3057-KQXKVJNXOU4DGSUG3P27IR3QEDHJ6K7HPDEZYN7W6HCOTCH3QO3Q:/tmp/build collab/collab-services-api-mvn-builder:2a074614 mvn -B -T 2C install
Run Code Online (Sandbox Code Playgroud)

最终会出现错误:

您指定的目标需要执行项目,但此目录中没有POM(/ tmp/build).

当我docker exec -it sh对容器做的时候,它/tmp/build是空的.但是当我在Jenkins容器中时,路径/var/jenkins_home/...QO3Q/存在并且它包含工作区,其中所有文件都已签出并准备好.

所以我想知道 - Docker如何快乐地安装音量然后它是空的?*

更令人困惑的是,这个设置适用于Mac上的同事.我在Linux上,Ubuntu 17.10,Docker最新.

docker docker-volume jenkins-pipeline docker-in-docker

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

头盔安装,Kubernetes-如何等待吊舱准备就绪?

我正在创建CI / CD管道。

我跑helm install --wait --timeout 300 ...。但这并没有真正等待,仅在“发布”状态为时返回DEPLOYED

因此,我看到 kubectl get pods --namespace default -l 'release=${TAG}' -o yaml其中可以使用的一些方法:

- kind: Pod
  status:
    conditions:
    - lastProbeTime: null
      lastTransitionTime: 2018-05-11T00:30:46Z
      status: "True"
      type: Initialized
    - lastProbeTime: null
      lastTransitionTime: 2018-05-11T00:30:48Z
      status: "True"
      type: Ready
Run Code Online (Sandbox Code Playgroud)

所以我想我会看看当Ready条件变为“ True”时。

  1. 感觉有点不对劲...每个人都解决了这个问题,所以我认为它具有某些功能kubectl,是否存在?

  2. 这是正确的查询吗?(参见Kubernetes JSONPath参考

    kubectl get pods --namespace default -l'release = sc8757070'-o jsonpath ='{。items [*]。status.conditions [?(@。type ==“ Ready”)]。status}'

kubernetes kubernetes-helm

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

Kubernetes:如何使用persistentVolumeReclaim动态执行PersistentVolumeClaim策略:回收

我使用进行动态PersistentVolume配置PersistentVolumeClaim

吊舱完成后,我想保留PV。所以我想做什么persistentVolumeReclaimPolicy: Reclaim

但是,这适用于PersistentVolume,而不适用于PersistentVolumeClaim(AFAIK)。

如何为动态预配置的PV更改此行为?

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
    name: {{ .Release.Name }}-pvc
spec:
    accessModes:
      - ReadWriteOnce
    storageClassName: gp2
    resources:
        requests:
            storage: 6Gi

---
kind: Pod
apiVersion: v1
metadata:
    name: "{{ .Release.Name }}-gatling-test"
spec:
    restartPolicy: Never
    containers:
      - name: {{ .Release.Name }}-gatling-test
        image: ".../services-api-mvn-builder:latest"
        command: ["sh", "-c", 'mvn -B gatling:test -pl csa-testing -DCSA_SERVER={{ template "project.fullname" . }} -DCSA_PORT={{ .Values.service.appPort }}']
        volumeMounts:
          - name: "{{ .Release.Name }}-test-res"
            mountPath: "/tmp/testResults"

    volumes: …
Run Code Online (Sandbox Code Playgroud)

kubernetes persistent-volumes persistent-volume-claims

5
推荐指数
4
解决办法
1777
查看次数