2016-07-14 2 views
1

Я обновил эти библиотеки для обмена сообщениями в проекте до последних версий:методы отсутствуют в новом Ребус и плагины

  • Ребус
  • Rebus.RabbitMQ
  • Rebus.Castle.Windsor
  • Rebus.Log4Net
  • Castle.Windsor

Я был очень смущен вес что в этих версиях отсутствуют некоторые из очень удобных старых методов.

У меня есть следующий ребус конфигурации API:

Configure.With(new WindsorContainerAdapter(container)) 
     .Logging(l => l.Log4Net()) 
     .Transport(t => t.UseRabbitMqAndGetInputQueueNameFromAppConfig(connectionString) 
     .ManageSubscriptions().SetPrefetchCount(5)) 
     .MessageOwnership(d => d.FromRebusConfigurationSection()) 
     .Serialization(s => s.Use(new MySerializer())) 
     .CreateBus() 
     .Start(); 

Эти методы отсутствуют в новой версии:

  • UseRabbitMqAndGetInputQueueNameFromAppConfig
  • ManageSubscriptions в RabbitMqOptionsBuilder
  • MessageOwnership в RebusConfigurer
  • Log4Net e xtension методы присутствуют в библиотеке, даже не распознанной VS

В документации Rebus все еще есть ссылки на старые методы и сценарии во многих местах.

Что было сделано со старыми удобными методами? У кого-то была такая же проблема, и он мог дать мне подсказку, что apis использовать в текущей версии (0.99.67) для существующего способа настройки клиента.

+0

Ваш лучший выбор может быть [поднять вопрос] (https://github.com/rebus-org/Rebus/issues) – stuartd

ответ

1

Ребус версии до 0.84.0 - это «Ребус 1» - «Ребус» получил довольно большое обновление (переписывание ядра, а затем портирование большинства libs вперед) в версии 0.90.0 - «Rebus 2»

поэтому лучше всего, вероятно, к Update-Package Rebus -Version 0.84.0 (и сделать то же самое с RabbitMQ, Виндзор, и log4Net интеграции пакетов)

Ребус 2 не совместим с Ребус 1, так что если вы решили обновить до 2, вы должен знать об этом.

Кроме того (как вы обнаружили) он видел несколько изменений API, где наиболее значительное изменение состоит в том, что большинство методов на IBus теперь async и, таким образом, требует, чтобы вы, например, await bus.Send(...) (или bus.Send(...).Wait(), если вы не в async метод)

+0

Благодарим вас за ответ. Я новичок в Rebus и обмена сообщениями. Не могли бы вы дать мне подсказку, где читать о том, что и как мне использовать вместо старых методов. Также возможно использовать что-то в новом Rebus вместо UseRabbitMqAndGetInputQueueNameFromAppConfig - чтобы прочитать имя очереди из rebus config, что я должен использовать вместо ManageSubscriptions и MessageOwnership (d => d.FromRebusConfigurationSection() – TakinosaJi

+0

Да, определенно - проверьте здесь: https://github.com/rebus-org/Rebus/issues/490#issuecomment-232889458 – mookid8000

+0

Привет @TakinosaJi - если вы удовлетворены с ответом, не могли бы вы пометить вопрос, как ответили? – mookid8000

Смежные вопросы