Подпишитесь на поток категорий, событие никогда не появляется в клиенте подписки

Поскольку я впервые пользуюсь GetEventStore и прочитал документацию, у меня возникла проблема, из-за которой события никогда не появляются в моем клиенте подписки.

Это возможно из-за шага настройки, который я пропустил.

Наличие этого клиента консольного приложения:

public class EventStoreSubscriptionClient : ISubscriptionClient
{
    private const string GroupName = "liner";
    private const string StreamName = "$ce-happening";

    private readonly IProvideEventStoreConnection _eventStoreConnection;
    private readonly UserCredentials _userCredentials;

    private EventStorePersistentSubscriptionBase EventStorePersistentSubscriptionBase { get; set; }

    public EventStoreSubscriptionClient(IProvideEventStoreConnection eventStoreConnection, UserCredentials userCredentials)
    {
        _eventStoreConnection = eventStoreConnection;
        _userCredentials = userCredentials;
    }

    public void Connect()
    {
        var connection = _eventStoreConnection.ConnectAsync().Result;
        EventStorePersistentSubscriptionBase = connection.ConnectToPersistentSubscription(
               StreamName,
               GroupName,
               EventAppeared,
               SubscriptionDropped,
               _userCredentials,
               10,
               false
        );
    }

    private void SubscriptionDropped(EventStorePersistentSubscriptionBase subscription, SubscriptionDropReason reason, Exception ex)
    {
        Connect();
    }

    private async void EventAppeared(EventStorePersistentSubscriptionBase subscription, ResolvedEvent resolvedEvent)
    {
        Console.WriteLine("Event appeared: " + resolvedEvent.Event.EventId);
    }

    public void Dispose()
    {
        EventStorePersistentSubscriptionBase.Stop(TimeSpan.FromSeconds(15));
    }
}

После запуска этого консольного приложения соединение с http://myserver:1113 устанавливается нормально. В панели администрирования моего магазина событий я вижу, что на вкладке конкурирующих потребителей есть подключение к этому потоку/группе:

Изображение администрации магазина событий

Но если я отправлю событие, подобное happening-<guid>, оно появится в потоковом браузере, но мой клиент подписки никогда не получит событие event appeared:

Изображение события, полученного в хранилище событий

Я неправильно понял, как работают подписки, потоки и группы? Пожалуйста, просветите меня.


person janhartmann    schedule 06.03.2016    source источник


Ответы (1)


Ответ здесь заключается в том, что проекции для магазина событий были отключены.

Запустите магазин с --run-projections=all

person janhartmann    schedule 08.03.2016