Weddell_Medici v0.1.4 Weddell.Client View Source
A persistent process responsible for interacting with Pusub over GRPC.
Link to this section Summary
Types
Option value used when connecting a client
Option values used when connecting clients
A cursor used for pagination of lists
An RPC error
Option value used when retrieving lists
Option values used when retrieving lists
Option values used when publishing messages
Options used when publishing messages
Option values used when pulling messages
Options used when pulling messages
Option values used when creating a subscription
Options used when creating a subscription
A Weddell client
Functions
Returns a specification to start this module under a supervisor
Connect to a Pub/Sub server and return a client
Invoked when the server is started. start_link/3
or start/3
will
block until it returns
Start the client process and connect to Pub/Sub using settings in the application config
Link to this section Types
connect_option() :: {:host, String.t()} | {:port, pos_integer()} | {:scheme, :http | :https} | {:ssl, [:ssl.ssl_option()]}
Option value used when connecting a client
Option values used when connecting clients
A cursor used for pagination of lists
An RPC error
list_option() :: {:max, pos_integer()} | {:cursor, cursor()}
Option value used when retrieving lists
Option values used when retrieving lists
Option values used when publishing messages
Options used when publishing messages
pull_option() :: {:return_immediately, boolean()} | {:max_messages, pos_integer()}
Option values used when pulling messages
Options used when pulling messages
subscription_option() :: {:ack_deadline, pos_integer()} | {:push_endpoint, String.t()}
Option values used when creating a subscription
subscription_options() :: [subscription_option()]
Options used when creating a subscription
t() :: %Weddell.Client{channel: GRPC.Channel.t(), project: String.t()}
A Weddell client
Link to this section Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.
connect(project :: String.t(), opts :: connect_options()) :: {:ok, t()}
Connect to a Pub/Sub server and return a client.
Example
Weddell.Client.connect("project-name",
scheme: :https,
host: "pubsub.googleapis.com",
port: 443,
ssl: [cacerts: :certifi.cacerts()])
#=> {:ok, client}
Options
scheme
- The scheme to use when connecting to the Pub/Sub service. (default: :https)host
- The Pub/Sub host to connect to. This defaults to Google’s Pub/Sub service but is useful for connecting to a local Pub/Sub emulator (default: “pubsub.googleapis.com”)port
- The port on which to connect to the host. (default: 443)ssl
- SSL settings to be used when connecting with the:https
scheme. Seessl_option()
in the ssl documentation. (default: [cacerts: :certifi.cacerts()])
Invoked when the server is started. start_link/3
or start/3
will
block until it returns.
init_arg
is the argument term (second argument) passed to start_link/3
.
Returning {:ok, state}
will cause start_link/3
to return
{:ok, pid}
and the process to enter its loop.
Returning {:ok, state, timeout}
is similar to {:ok, state}
,
except that it also sets a timeout. See the “Timeouts” section
in the module documentation for more information.
Returning {:ok, state, :hibernate}
is similar to {:ok, state}
except the process is hibernated before entering the loop. See
c:handle_call/3
for more information on hibernation.
Returning {:ok, state, {:continue, continue}}
is similar to
{:ok, state}
except that immediately after entering the loop
the c:handle_continue/2
callback will be invoked with the value
continue
as first argument.
Returning :ignore
will cause start_link/3
to return :ignore
and
the process will exit normally without entering the loop or calling
c:terminate/2
. If used when part of a supervision tree the parent
supervisor will not fail to start nor immediately try to restart the
GenServer
. The remainder of the supervision tree will be started
and so the GenServer
should not be required by other processes.
It can be started later with Supervisor.restart_child/2
as the child
specification is saved in the parent supervisor. The main use cases for
this are:
- The
GenServer
is disabled by configuration but might be enabled later. - An error occurred and it will be handled by a different mechanism than the
Supervisor
. Likely this approach involves callingSupervisor.restart_child/2
after a delay to attempt a restart.
Returning {:stop, reason}
will cause start_link/3
to return
{:error, reason}
and the process to exit with reason reason
without
entering the loop or calling c:terminate/2
.
Callback implementation for GenServer.init/1
.
Start the client process and connect to Pub/Sub using settings in the application config.
Example
In your application config:
config :weddell,
scheme: :http,
host: "localhost",
port: 8085,
project: "test-project"
Settings
project
- The required Google Cloud project that will be used for all calls made by this client.scheme
- The scheme to use when connecting to the Pub/Sub service. (default: :https)host
- The Pub/Sub host to connect to. This defaults to Google’s Pub/Sub service but is useful for connecting to a local Pub/Sub emulator (default: “pubsub.googleapis.com”)port
- The port on which to connect to the host. (default: 443)ssl
- SSL settings to be used when connecting with the:https
scheme. Seessl_option()
in the [ssl documentation] (http://erlang.org/doc/man/ssl.html). (default: [:cacerts: :certifi.cacerts()])