minos.networks.brokers.publishers.producers module

class minos.networks.brokers.publishers.producers.BrokerProducer(*args, broker_host, broker_port, retry, records, client=None, consumer=<dependency_injector.wiring.Provide object>, **kwargs)[source]

Bases: minos.networks.brokers.publishers.abc.BrokerPublisherSetup

Broker Producer class.

__init__(*args, broker_host, broker_port, retry, records, client=None, consumer=<dependency_injector.wiring.Provide object>, **kwargs)[source]
property already_destroyed: bool

Already Destroy getter.

Return type

bool

Returns

A boolean value.

property already_setup: bool

Already Setup getter.

Return type

bool

Returns

A boolean value.

property client: aiokafka.producer.producer.AIOKafkaProducer

Get the client instance.

Return type

aiokafka.producer.producer.AIOKafkaProducer

Returns

An AIOKafkaProducer instance.

cursor(*args, **kwargs)

Get a new cursor.

Parameters
  • args – Additional positional arguments.

  • kwargs – Additional named arguments.

Return type

typing.AsyncContextManager[aiopg.connection.Cursor]

Returns

A Cursor wrapped into an asynchronous context manager.

async destroy()

Destroy miscellaneous repository things.

Return type

None

Returns

This method does not return anything.

async dispatch(cursor=None)[source]

Dispatch the items in the publishing queue.

Return type

None

Returns

This method does not return anything.

async dispatch_forever(max_wait=60.0)[source]

Dispatch the items in the publishing queue forever.

Parameters

max_wait (typing.Optional[float]) – Maximum seconds to wait for notifications. If None the wait is performed until infinity.

Return type

typing.NoReturn

Returns

This method does not return anything.

async dispatch_one(row)[source]

Dispatch one row.

Parameters

row (tuple) – A row containing the message information.

Return type

bool

Returns

True if everything was fine or False otherwise.

classmethod from_config(config=None, **kwargs)

Build a new instance from config.

Parameters
  • config (typing.Union[minos.common.configuration.config.MinosConfig, pathlib.Path, None]) – Config instance. If None is provided, default config is chosen.

  • kwargs – Additional named arguments.

Return type

~S

Returns

A instance of the called class.

locked_cursor(key, *args, **kwargs)

Get a new locked cursor.

Parameters
  • key (collections.abc.Hashable) – The key to be used for locking.

  • args – Additional positional arguments.

  • kwargs – Additional named arguments.

Return type

typing.AsyncContextManager[aiopg.connection.Cursor]

Returns

A Cursor wrapped into an asynchronous context manager.

property pool: minos.common.database.pools.PostgreSqlPool

Get the connections pool.

Return type

minos.common.database.pools.PostgreSqlPool

Returns

A Pool object.

async publish(topic, message)[source]

Publish a new item in the broker (kafka).

Parameters
  • topic (str) – The topic in which the message will be published.

  • message (bytes) – The message to be published.

Return type

bool

Returns

A boolean flag, True when the message is properly published or False otherwise.

async setup()

Setup miscellaneous repository things.

Return type

None

Returns

This method does not return anything.

async submit_query(operation, parameters=None, *, timeout=None, lock=None, **kwargs)

Submit a SQL query.

Parameters
  • operation (typing.Any) – Query to be executed.

  • parameters (typing.Optional[typing.Any]) – Parameters to be projected into the query.

  • timeout (typing.Optional[float]) – An optional timeout.

  • lock (typing.Optional[typing.Any]) – Optional key to perform the query with locking. If not set, the query is performed without any lock.

  • kwargs – Additional named arguments.

Return type

None

Returns

This method does not return anything.

async submit_query_and_fetchone(*args, **kwargs)

Submit a SQL query and gets the first response.

Parameters
  • args – Additional positional arguments.

  • kwargs – Additional named arguments.

Return type

tuple

Returns

This method does not return anything.

async submit_query_and_iter(operation, parameters=None, *, timeout=None, lock=None, streaming_mode=False, **kwargs)

Submit a SQL query and return an asynchronous iterator.

Parameters
  • operation (typing.Any) – Query to be executed.

  • parameters (typing.Optional[typing.Any]) – Parameters to be projected into the query.

  • timeout (typing.Optional[float]) – An optional timeout.

  • lock (typing.Optional[int]) – Optional key to perform the query with locking. If not set, the query is performed without any lock.

  • streaming_mode (bool) – If True the data fetching is performed in streaming mode, that is iterating over the cursor and yielding once a time (requires an opening connection to do that). Otherwise, all the data is fetched and keep in memory before yielding it.

  • kwargs – Additional named arguments.

Return type

typing.AsyncIterator[tuple]

Returns

This method does not return anything.