Neon MQ Connector
The Neon MQ Connector is an MQ interface for microservices.
Configuration
By default, this package will use ovos-config
to read default configuration. In general, configuration should be passed to the
MQConnector object at init.
Legacy Configuration
A global configuration for the MQ Connector may be specified at ~/.config/neon/mq_config.json. This configuration file
may contain the following keys:
server: The hostname or IP address of the MQ server to connect to. If left blank, this defaults to"localhost"port: The port used by the MQ server. If left blank, this defaults to5672users: A mapping of service names to credentials. Note that not all users will have permissions required to access each service.
{
"server": "localhost",
"port": 5672,
"users": {
"<service_name>": {
"username": "<username>",
"password": "<password>"
}
}
}
Services
The MQConnector class should be extended by a class providing some specific service.
Service classes will specify the following parameters.
service_name: Name of the service, used to identify credentials in configurationvhost: Virtual host to connect to; messages are all constrained to this namespace.consumers: Dict of names toConsumerThreadobjects. AConsumerThreadwill accept a connection to a particularconnection, aqueue, and acallback_funcconnection: MQ connection to thevhostspecified above.queue: Queue to monitor within thevhost. Avhostmay handle multiple queues.callback_func: Function to call when a message arrives in thequeue
Callback Functions
A callback function should have the following signature:
def handle_api_input(self,
channel: pika.channel.Channel,
method: pika.spec.Basic.Return,
properties: pika.spec.BasicProperties,
body: bytes):
"""
Handles input requests from MQ to Neon API
:param channel: MQ channel object (pika.channel.Channel)
:param method: MQ return method (pika.spec.Basic.Return)
:param properties: MQ properties (pika.spec.BasicProperties)
:param body: request body (bytes)
"""
Generally, body should be decoded into a dict, and that dict should contain message_id. The message_id should
be included in the body of any response to associate the response to the request.
A response may be sent via:
channel.queue_declare(queue='<queue>')
channel.basic_publish(exchange='',
routing_key='<queue>',
body=<data>,
properties=pika.BasicProperties(expiration='1000')
)
Where <queue> is the queue to which the response will be published, and data is a bytes response (generally a base64-encoded dict).
Asynchronous Consumers
By default, async-based consumers handling based on pika.SelectConnection will
be used
Override use of async consumers
There are a few methods to disable use of async consumers/subscribers.
-
To disable async consumers for a particular class/object, set the class-attribute
async_consumers_enabledtoFalse:from neon_mq_connector import MQConnector class MQConnectorChild(MQConnector): async_consumers_enabled = False
-
To disable the use of async consumers at runtime, set the
MQ_ASYNC_CONSUMERSenvvar toFalseexport MQ_ASYNC_CONSUMERS=false
Metadata
Release files for neon-mq-connector 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| neon_mq_connector-0.10.0.tar.gz | 31.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| neon_mq_connector-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 85.4 kB
Release files / neon_mq_connector-0.10.0.tar.gz
| Download URL | neon_mq_connector-0.10.0.tar.gz |
|---|---|
| Size | 31.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a8f927d8d73ce8fc62dc4f3f5c4254454e91cfaf0d261159db9de4e2ff5553d7
|
|
BLAKE2b-256 checksum How to use checksums |
4c36bd7df4928ad6c9d957289b1c1716abe5c1d10fbf9c84fef965f5fc4821ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / neon_mq_connector-0.10.0-py3-none-any.whl
| Download URL | neon_mq_connector-0.10.0-py3-none-any.whl |
|---|---|
| Size | 53.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c95cb4fd9bfb661af6722dc3f4f4d7107241bf0d332c0658e179c9f894c00768
|
|
BLAKE2b-256 checksum How to use checksums |
93e63c818e87b2850fd009699995879c27dce021ab3d03fb88b403845551560b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|