小编zei*_*isi的帖子

移除故障节点后 Docker Swarm 中的孤立任务

上周我不得不从我的 Docker Swarm 集群中删除一个失败的节点,让在该节点上运行的一些任务处于所需的状态“删除”。

即使删除堆栈并使用相同的名称重新创建它,docker stack ps stackname仍然显示它们。

有趣的是,在重新创建堆栈后,任务仍然存在,但没有分配节点。 docker stack ps 截图

到目前为止,这是我尝试“清理”堆栈的方法:

  • 重新创建具有相同名称的堆栈
  • docker container prune
  • docker volume prune
  • docker system prune

有没有办法删除特定任务?

这是docker inspect fkgz0oihexzs列表中第一个任务的输出:

[
  {
    "ID": "fkgz0oihexzsjqwv4ju0szorh",
    "Version": {
      "Index": 14422171
    },
    "CreatedAt": "2018-11-05T16:15:31.528933998Z",
    "UpdatedAt": "2018-11-05T16:27:07.422368364Z",
    "Labels": {},
    "Spec": {
      "ContainerSpec": {
        "Image": "redacted",
        "Labels": {
          "com.docker.stack.namespace": "redacted"
        },
        "Env": [
          "redacted"
        ],
        "Privileges": {
          "CredentialSpec": null,
          "SELinuxContext": null
        },
        "Isolation": "default"
      },
      "Resources": {},
      "Placement": {
        "Platforms": [
          {
            "Architecture": "amd64",
            "OS": "linux"
          } …
Run Code Online (Sandbox Code Playgroud)

docker docker-swarm

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

Jackson POJOPropertyBuilder在POJO中找到多个setter

我们正在使用Spring Web MVC 3.2.2和Jackson Databind 2.4.4(以及许多其他库中......)开发一个相当大的JSON REST API.

我正在尝试使用swagger-springmvc,但我遇到了一些我们的DTO问题.

无论我使用简单@EnableSwagger或更复杂的swagger配置,我在启动Tomcat 7时总是会遇到以下异常:

java.lang.IllegalArgumentException: Conflicting setter definitions for property "year": javax.xml.datatype.XMLGregorianCalendar#setYear(1 params) vs javax.xml.datatype.XMLGregorianCalendar#setYear(1 params)
at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getSetter(POJOPropertyBuilder.java:303)
at com.mangofactory.swagger.models.Annotations.findPropertyAnnotation(Annotations.java:33)
at com.mangofactory.swagger.models.property.bean.BeanModelProperty.<init>(BeanModelProperty.java:26)
at com.mangofactory.swagger.models.property.bean.BeanModelPropertyProvider.beanModelProperty(BeanModelPropertyProvider.java:166) (...rest of stacktrace )
Run Code Online (Sandbox Code Playgroud)

上面提到的属性"year"只是一个例子,在没有包含属性year的类的情况下尝试相同.

奇怪的是,杰克逊选择了两次相同的方法/设定者: javax.xml.datatype.XMLGregorianCalendar#setYear(1 params)vsjavax.xml.datatype.XMLGregorianCalendar#setYear(1 params

我花了一些时间与调试器,并注意到一些DTO似乎通过检查冲突的setter就好了.

我现在花了很多时间在这上面,无法提出解决方案.我在谷歌发现的这个例外的大多数页面都谈到了重载的方法/设置器,这与我的DTO不同 - 它们只是简单的对象,只有属性,设置器和getter.

任何帮助将不胜感激!

java spring-mvc jackson swagger

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

查询Postgres 9.6 JSONB对象数组

我有下表:

CREATE TABLE trip
(
    id SERIAL PRIMARY KEY ,
    gps_data_json jsonb NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

gps_data_json中的JSON包含一系列具有以下字段的trip对象(下面的示例数据):

  • 模式
  • 时间戳
  • 纬度
  • 经度

我正在尝试获取包含某个"模式"的所有行.

SELECT * FROM trip
where gps_data_json ->> 'mode' = 'WALK';
Run Code Online (Sandbox Code Playgroud)

我很确定我使用 - >>运算符错了,但我不确定告诉查询JSONB字段是一个对象数组的人?

样本数据:

INSERT INTO trip (gps_data_json) VALUES
  ('[
      {
        "latitude": 47.063480377197266,
        "timestamp": 1503056880725,
        "mode": "TRAIN",
        "longitude": 15.450349807739258
      },
      {
        "latitude": 47.06362533569336,
        "timestamp": 1503056882725,
        "mode": "WALK",
        "longitude": 15.450264930725098
      }
    ]');

INSERT INTO trip (gps_data_json) VALUES
  ('[
      {
        "latitude": 47.063480377197266,
        "timestamp": 1503056880725,
        "mode": "BUS",
        "longitude": 15.450349807739258
      },
      {
        "latitude": …
Run Code Online (Sandbox Code Playgroud)

postgresql jsonb postgresql-9.6

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