Skip to content

Commit

Permalink
Reduce amount of subscription data stored in Elixir registry
Browse files Browse the repository at this point in the history
  • Loading branch information
zoldar committed Dec 15, 2020
1 parent 72ff9f9 commit aa4760e
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 5 deletions.
2 changes: 1 addition & 1 deletion lib/absinthe/phase/subscription/subscribe_self.ex
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ defmodule Absinthe.Phase.Subscription.SubscribeSelf do
subscription_id = get_subscription_id(config, blueprint, options)

for field_key <- field_keys,
do: Absinthe.Subscription.subscribe(pubsub, field_key, subscription_id, blueprint)
do: Absinthe.Subscription.subscribe(pubsub, field_key, subscription_id, blueprint, options)

{:replace, blueprint,
[
Expand Down
7 changes: 4 additions & 3 deletions lib/absinthe/subscription.ex
Original file line number Diff line number Diff line change
Expand Up @@ -106,14 +106,15 @@ defmodule Absinthe.Subscription do
defp fetch_fields(_, _), do: []

@doc false
def subscribe(pubsub, field_key, doc_id, doc) do
def subscribe(pubsub, field_key, doc_id, doc, options) do
registry = pubsub |> registry_name

doc_value = {
doc_id,
%{
initial_phases: doc.initial_phases,
source: doc.source
schema: doc.schema,
source: doc.source,
options: options
}
}

Expand Down
4 changes: 3 additions & 1 deletion lib/absinthe/subscription/local.ex
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,10 @@ defmodule Absinthe.Subscription.Local do
defp run_docset(pubsub, docs_and_topics, mutation_result) do
for {topic, key_strategy, doc} <- docs_and_topics do
try do
pipeline = Absinthe.Pipeline.for_document(doc.schema, doc.options)

pipeline =
doc.initial_phases
pipeline
|> Pipeline.replace(
Phase.Telemetry,
{Phase.Telemetry, event: [:subscription, :publish, :start]}
Expand Down

0 comments on commit aa4760e

Please sign in to comment.