AnyBlok / bus
Improve AnyBlok to add comunication with bus.
Blok |
Dependancies |
Description |
|---|---|---|
bus |
Consume and publish message with pika and marshmallow |
AnyBlok / Bus is released under the terms of the Mozilla Public License.
See the latest documentation
Usage
Declare a new consumer
In an AnyBlok Model you have to decorate a method with bus_consumer
from anyblok_bus import bus_consumer
from anyblok import Declarations
from .schema import MySchema
@Declarations.register(Declarations.Model)
class MyModel:
@bus_consumer(queue_name='name of the queue', schema=MySchema())
def my_consumer(cls, body):
# do something
The schema must be an instance of marshmallow.Schema, see the marshmallow documentation
Publish a message through rabbitmq
The publication is done by registry.Bus.publish method:
registry.Bus.publish('exchange', 'routing_key', message, mimestype)
if the message have not be send, then an exception is raised
..warning:
A profile must be defined and selected by the AnyBlok configuration **bus_profile**
Front Matter
Information about the AnyBlok / Bus project.
Project Homepage
AnyBlok is hosted on github - the main project page is at https://github.com/AnyBlok/anyblok_bus. Source code is tracked here using GIT.
Releases and project status are available on Pypi at http://pypi.python.org/pypi/anyblok_bus.
The most recent published version of this documentation should be at http://doc.anyblok-bus.anyblok.org.
Installation
Install released versions of AnyBlok from the Python package index with pip or a similar tool:
pip install anyblok_bus
Installation via source distribution is via the setup.py script:
python setup.py install
Installation will add the anyblok commands to the environment.
Unit Test
Run the test with nose:
pip install nose nosetests anyblok_bus/tests
Script
anyblok_bus add console_script to launch worker. A worker consume a queue defined by the decorator anyblok_bus.bus_consumer:
anyblok_bus -c anyblok_config_file.cfg
..note:: The profile name in the configuration is used to find the correct url to connect to rabbitmq
Dependencies
AnyBlok / Bus works with Python >= 3.4 and later and pika >= 1.0.1. The install process will ensure that AnyBlok is installed, in addition to other dependencies. The latest version of them is strongly recommended.
Contributors
Anybox team:
Jean-Sébastien Suzanne
Florent Jouatte
Sensee team:
Julien SZKUDLAPSKI
Jean-Sébastien Suzanne
Bugs
Bugs and feature enhancements to AnyBlok should be reported on the Issue tracker.
CHANGELOG
1.2.0 (2019-06-24)
Update version to use pika >= 1.0.1
Fixed Multiple consumer on the same model
Refactored bus console script, Added processes parameter on bus_consumer. The goal is to define processes for one queue, by default all the queues are in the same process
Add better logging when a queue is missing. If a queue is missing, then workers won’t start.
Added adapter parameter to transform bus message, the schema attribute become now a simple kwargs argument give to adapter.
The adapter is not required.
1.1.0 (2018-09-15)
Improved logging: for helping to debug the messages
Added create and update date columns
fixed consume_all method. now the method does not stop when an exception is raised
Used marsmallow version >= 3.0.0
1.0.0 (2018-06-05)
add Worker to consume the message from rabbitmq
add publish method to publish a message to rabbitmq
add anyblok_bus.bus_consumer add decorator to défine the consumer
Release files for anyblok_bus 1.2.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 | |
|---|---|---|---|
| anyblok_bus-1.2.0.tar.gz | 19.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| anyblok_bus-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.7 kB
Release files / anyblok_bus-1.2.0.tar.gz
| Download URL | anyblok_bus-1.2.0.tar.gz |
|---|---|
| Size | 19.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a3ba26c4323aeb462dc9f284b35d19079e5d1df96d1428a338a72e6b1c9786df
|
|
BLAKE2b-256 checksum How to use checksums |
11fc19577f8458559479e6005fa296df9d36648c2f1a4acc70059f815c9f3769
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.5
|
Release files / anyblok_bus-1.2.0-py3-none-any.whl
| Download URL | anyblok_bus-1.2.0-py3-none-any.whl |
|---|---|
| Size | 28.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
20671d1b280813fae9726a0119e320c8e667be24b849ccd88327c4a4cf99151d
|
|
BLAKE2b-256 checksum How to use checksums |
80d8d4d955b7a73178524ed20d0c8773a9877c3f1f4c5f5947d68507e7d40989
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.5
|