protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            var subscriber = _redisMultiplexer.GetSubscriber();

            var observable = Observable.Create <FileEvent>(async(obs, ct) =>
            {
                await subscriber.SubscribeAsync(_fileEventKey, (_, message) =>
                {
                    obs.OnNext(FromRedisValue(message));
                }).ConfigureAwait(false);

                return(Disposable.Create(() => subscriber.Unsubscribe(_fileEventKey)));
            });

            using (var subscription = observable.Subscribe(async(message) =>
            {
                try
                {
                    await _videoRepository.AddVideoFile(message.filename, message.id);
                }
                catch (Exception e)
                {
                    _logger.LogError(e, "Error while recording file event.");
                }
            }))
            {
                //This is to prevent the service from being disposed
                while (true)
                {
                    await Task.Delay(1000);
                }
            }
        }