Восстановление подписки StackExchange.Redis

Я использую StackExchange.Redis 1.0.331 (NuGet) и не могу заставить его работать должным образом в соответствии с документами.

Еще одно распространенное использование Redis — инструмент распространения сообщений публикации/подписки; это тоже просто, и в случае сбоя соединения ConnectionMultiplexer обработает все детали повторной подписки на запрошенные каналы.

Прецедент

// Starting server: redis-server.exe --port 27017 --maxmemory 5mb

using (var con = ConnectionMultiplexer.Connect("127.0.0.1:27017")) {

    var sub = con.GetSubscriber();

    sub.Subscribe("test", (c, v) => {
        Console.WriteLine("Got notification: " + (string)v);
    });

    sub.Publish("test", "This one gets caught");

    // Restarting server.
    Console.ReadKey();

    sub.Publish("test", "This one does not");

    Console.ReadKey();
}

Я что-то упускаю?


person Leonid    schedule 18.09.2014    source источник
comment
эй; да, это нехорошо; похоже, что мы получаем новый ServerEndPoint по какой-то причине; подписки проводятся на уровне ServerEndPoint, поэтому я не уверен, почему... смотрю. Редактировать: ха; оказалось, что электронное письмо, которое я получил прошлой ночью, содержало diff для решения этого... локального тестирования   -  person Marc Gravell    schedule 18.09.2014


Ответы (1)


эй; закрался неприятный баг - неправильно раскрутить новый ServerEndPoint (подписки держатся против ServerEndPoint, так что это плохо). Интересное время, но кто-то еще независимо прислал мне патч для этого прошлой ночью (хотя я не знал, что эти два отчета связаны, пока не исследовал) - это было слил и зафиксировал и, надеюсь, перейдет в NuGet позже сегодня.

person Marc Gravell    schedule 18.09.2014
comment
Свежая сборка успешно восстанавливает подписки, спасибо. - person Leonid; 18.09.2014
comment
@poopysprint что-нибудь 1.0.333+ должно быть в порядке - person Marc Gravell; 18.09.2014