Skip to content

Commit

Permalink
refactor(redis): Only cache unique dependencies in Redis cache
Browse files Browse the repository at this point in the history
  • Loading branch information
jimwashbrook committed Jan 16, 2025
1 parent e66e880 commit 92be1b1
Showing 1 changed file with 5 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,16 @@ public Task RegisterDependenciesAsync<T>(IDatabase database, string key, T value
private async Task GetAndSetDependencies<T>(IDatabase database, string key, T value)
{
var batch = database.CreateBatch();
var tasks = GetDependencies(value).Select(dependency => batch.SetAddAsync(GetDependencyKey(dependency), key, CommandFlags.FireAndForget)).ToArray();
var tasks = GetDependencies(value).Distinct()
.Select(dependency => batch.SetAddAsync(GetDependencyKey(dependency), key, CommandFlags.FireAndForget))
.ToArray();

if (tasks.Length == 0)
{
// If the value has no dependencies (is empty) it should be invalidated when new content comes in
tasks = tasks.Append(batch.SetAddAsync(EmptyCollectionDependencyKey, key, CommandFlags.FireAndForget)).ToArray();
}

batch.Execute();
await Task.WhenAll(tasks);
}
Expand Down

0 comments on commit 92be1b1

Please sign in to comment.