EasyNetQ.Management.Client icon indicating copy to clipboard operation
EasyNetQ.Management.Client copied to clipboard

ParameterShovelValue.deleteafter doesn't work with integers

Open inikulshin opened this issue 7 years ago • 5 comments

Probably, deleteafter JsonProperty should have special JsonConverter, writing it as integer if value can be converted to integer, and as a string otherwise.

inikulshin avatar Jan 25 '18 12:01 inikulshin

Also, delete-after property seems to be deprecated in some RabbitMQ version, and src-delete-after should be used instead.

inikulshin avatar Jan 25 '18 12:01 inikulshin

@inikulshin if you found the error in the source code, a PR will be much appreciated, thank you 😄

micdenny avatar Feb 19 '18 09:02 micdenny

Reference: https://www.rabbitmq.com/shovel-dynamic.html

luigiberrettini avatar Jul 03 '18 22:07 luigiberrettini

@Pliner what's the best type for SrcDeleteAfter (every solution will require custom JsonConverter):

  1. record DeleteAfter(DeleteAfterEnum, int?)
    1. SrcDeleteAfter = new DeleteAfter(DeleteAfterEnum.Never)
    2. SrcDeleteAfter = new DeleteAfter(DeleteAfterEnum.QueueLength)
    3. SrcDeleteAfter = new DeleteAfter(10)
  2. string (custom JsonConverter will read/write integer if can be parsed from string)
    1. SrcDeleteAfter = DeleteAfterNever // readonly string DeleteAfterNever = "never"
    2. SrcDeleteAfter = DeleteAfterQueueLength // readonly string DeleteAfterNever = "queue-length"
    3. SrcDeleteAfter = "10"
  3. enum DeleteAfter { Never = -1, QueueLength = -2 } and every other value is treated as integer
    1. SrcDeleteAfter = DeleteAfter.Never
    2. SrcDeleteAfter = DeleteAfter.QueueLength
    3. SrcDeleteAfter = (DeleteAfter)10

inikulshin avatar Dec 26 '23 12:12 inikulshin

@zidad see previous comment.

inikulshin avatar Jan 06 '24 22:01 inikulshin