小编Mat*_*usz的帖子

来自另一个属性的 spring application.yml 引用列表

我有application-dev.yml包含内容的属性文件:

spring.profiles: dev
config.some.value:
- ELEMENT1
- ELEMENT2
Run Code Online (Sandbox Code Playgroud)

另一个application-staging.yml内容:

spring.profiles: staging
config.some.value:
- ELEMENT1
- ELEMENT2
- ELEMENT3
Run Code Online (Sandbox Code Playgroud)

所以我基本上不知道列表的大小。当我application.yml像这样在 main 中引用这个列表时:

some.value: ${config.some.value}
Run Code Online (Sandbox Code Playgroud)

我明白了Failed to convert property value of type 'java.lang.String' to required type 'java.util.List' for property 'value'。如何正确引用?

spring spring-properties

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

哈希而不是id

我想在我的activerecords中使用自动生成的散列而不是自动递增的整数作为主键.这提出了两个问题:

  1. 如何以最有效的方式执行这一代?
  2. 如何处理表中已存在生成哈希的可能性?

此致,Mateusz

activerecord ruby-on-rails

8
推荐指数
2
解决办法
6321
查看次数

写流到回形针

我想存储收到的电子邮件附件以及回形针的使用.从电子邮件我得到part.body,我不知道如何把它放到回形针模型.现在我创建临时文件并将port.body写入其中,将此文件存储到paperclip,然后删除文件.以下是我使用临时文件的方法:

    l_file = File.open(l_path, "w+b", 0644)
    l_file.write(part.body)
    oAsset = Asset.new(
        :email_id => email.id, 
        :asset => l_file, 
        :header => h, 
        :original_file_name => o, 
        :hash => h)
    oAsset.save
    l_file.close
    File.delete(l_path)
Run Code Online (Sandbox Code Playgroud)

:asset是我的'has_attached_file'字段.有没有办法省略文件创建,并在Asset.new中执行类似:: asset => part.body的操作?

ruby-on-rails stream paperclip

7
推荐指数
3
解决办法
5319
查看次数

warden custom_failure

I use devise for API authentication. I have overwritten SessionController:create method like this:

class Users::SessionsController < Devise::SessionsController

  def create
    resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
    set_flash_message(:notice, :signed_in) if is_navigational_format?
    val = sign_in(resource_name, resource)
    current_user.reset_authentication_token!

    respond_to do |format|
      format.html do
        respond_with resource, :location => redirect_location(resource_name, resource)
      end
      format.json do
        render :json => { :status => OK_OK, :auth_token => current_user.authentication_token }.to_json, :status => :ok
      end
    end
  end
end 
Run Code Online (Sandbox Code Playgroud)

As you can see I respond with a status code when authenticating …

ruby-on-rails devise warden ruby-on-rails-3

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

将Net :: IMAP电子邮件写入mikel/mail email

将使用Net::IMAP库提取的电子邮件传递给Mail使用mikel/mailgem 定义的对象时遇到问题.

我收到邮件:

data = imap.uid_fetch(1, "BODY[]")
Run Code Online (Sandbox Code Playgroud)

但是我应该如何将它放入Mail.read约定?

mail = Mail.read(data.to_s)
Run Code Online (Sandbox Code Playgroud)

似乎得到了Errno::ENAMETOOLONG: File name too long.它将邮件正文理解为文件名.

有任何想法吗?

ruby

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

kubernetes gke multiple ingresses single global ip

我在GKE上的k8上有多个MSA.每个都在单独的子域上,如:

  • msa1.example.com
  • msa2.example.com

我在单个入口中有它:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: main-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: lalala-ip-1
    kubernetes.io/ingress.allow-http: "false"
spec:
  tls:
  - hosts:
    - msa1.example.com
    secretName: msa1-tls
  backend:
    serviceName: sink
    servicePort: 80
  rules:
  - host: msa1.example.com
    http:
      paths:
      - path: /.well-known/*
        backend:
          serviceName: letsencrypt
          servicePort: 80
      - path: /*
        backend:
          serviceName: lalala
          servicePort: 80
  - host: msa2.example.com
    http:
      paths:
      - path: /*
        backend:
          serviceName: lalala2
          servicePort: 80
Run Code Online (Sandbox Code Playgroud)

......一切都很好.

问题是,我希望将每个MSA放在单独的文件中.

问题是这一kubernetes.io/ingress.global-static-ip-name: lalala-ip-1行.如果我在两个入口中有它只有第一次启动是有限的IP,但其他没有.

有没有办法在两个入口之间共享GKE入口控制器上的IP?

gcloud kubernetes google-kubernetes-engine kubernetes-ingress

3
推荐指数
2
解决办法
866
查看次数

KStream 将记录发送到多个流(不是分支)

有没有办法进行类似分支的操作​​,但将记录放在每个谓词评估为真的输出流中?Brach 将记录放置到第一个匹配项(文档:在第一个匹配项中将记录放置到一个且仅一个输出流中)。

apache-kafka apache-kafka-streams spring-kafka

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

将消息返回到rabbitmq中的队列末尾

我有交换和队列。生产者不需要消费确认,但在某些情况下,由于缺乏其他数据,消费者可能无法在当前时刻处理消息。因此,我想将这些消息返回到队列末尾。这该怎么做?还是在我拒绝消息时自动完成?

流动:

  • Message1 被消耗并在数据库中创建一些记录。
  • Message2 被消耗并检查数据库中是否有记录,如果有,则更新记录。如果数据库中没有记录,则将消息返回到队列末尾。

所以存在消息排序问题,在一般情况下,我按顺序接收消息,因为大多数组件正确传递消息。我想解决潜在的情况,当 Message1 的 Producer 由于负载过重或其他原因无法立即将消息进行交换时。在这种情况下,Message2 将首先被消费,但数据库中将没有足够的信息来处理它。我希望此消息返回到队列,但请确保此 Message2 将转到队列的尾部。如果它会继续下去,如果我只使用一个队列,我就会陷入无限循环。

附带问题是,是否可以跟踪消费者尝试处理消息但返回消息的次数。如果有可能像我之前描述的那样将消息放到队列的尾部,但是由于某种原因 Message1 的生产者死了,并且没有 Message1,我想让 Message2 在重试几次或一段时间后死掉。

amqp rabbitmq spring-rabbit

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