我正在编写一个通用的解组器。它将图形数据库数据转换为生成的 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) 我的课很少。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'。 .'.
我认为这可以用泛型来完成,但我不确定如何做。
我有一个 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) 我正在将我的应用程序从angularjs移动到angular2.我用的Angular Loading Bar是哪个
使用角度拦截器的自动装载杆.它自动运行,因此只需将其作为依赖项包含它,它将自动显示$ http请求的进度.
我试图在angular2中找到类似的插件.我遇到了一些,ng2-slim-loading-bar但在这里我必须手动管理进度.对于每个http请求,我必须手动启动进度条,然后完成它.
那么,是否有任何现有的插件可以完成Angular Loading Bar与angularjs 完全相同的操作.或者我如何修改任何现有的插件,使其表现得像这样.
我有以下代码可以在 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:。终止此连接的正确方法是什么?
我正在使用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) 我们正在开发利用 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,因为它具有我们可能不需要的复杂程度。
我在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最新.
我正在创建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”时。
感觉有点不对劲...每个人都解决了这个问题,所以我认为它具有某些功能kubectl,是否存在?
这是正确的查询吗?(参见Kubernetes JSONPath参考)
kubectl get pods --namespace default -l'release = sc8757070'-o jsonpath ='{。items [*]。status.conditions [?(@。type ==“ Ready”)]。status}'
我使用进行动态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 ×3
typescript ×3
docker ×2
angular ×1
class ×1
compilation ×1
dictionary ×1
gatling ×1
loading ×1
marshalling ×1
maven ×1
namespaces ×1
networking ×1
postgresql ×1
progress-bar ×1
reflection ×1
scala ×1
symlink ×1
tsc ×1