Simple MongoDb dependency for nameko (microservices framework). Based on https://github.com/saiqi/nameko-mongodb
Project description
Overview
This is DependencyProvider for Nameko microservices framework which enables users to work with MongoDb.
First of all I should say that this package based on https://github.com/saiqi/nameko-mongodb . Thank you @saiqi :)
What has been changed:
- Automatic uploading to PyPI by Travis-CI (it was a primary purpose for building of my pet projects)
- Disabled by default results logging
- Some fixes to make this stuff work with new Nameko
Requirements
- Python 2.7 / 3.4 / 3.5 / 3.6 / 3.7
- Nameko 3.11+
- MongoDb :)
Installation
The same as you guessing: pip install nameko-mongodb
How to use
There are some configuration options to use this package (required are in bold):
- MONGODB_CONNECTION_URL - connection URL
- MONGODB_DB_NAME - database name. Default is your service name
- MONGODB_USER - if you need to be authenticated, provide username
- MONGODB_PASSWORD
- MONGODB_AUTHENTICATION_BASE - a source to authenticate. See more information in PyMongo documentation
- MONGODB_AUTH_MECHANISM - see more information in PyMongo documentation
You can use the connection following way:
from nameko.rpc import rpc
import MongoDatabase from nameko_mongodb
class YourService(object):
name = 'your_service'
database = MongoDatabase()
@rpc
def find_item(self):
return self.database.your_collection.find_one()
Also this package can log all executions to logging
collection. If you want to use it:
from nameko.rpc import rpc
import MongoDatabase from nameko_mongodb
class YourService(object):
name = 'your_service'
database = MongoDatabase(result_backend=True)
@rpc
def find_item(self):
return self.database.your_collection.find_one()
Sometimes there can be useful to get possibility executing callbacks for DependencyProvider methods (i.e. migrating data when dependency initialized etc.). There are some callbacks:
on_before_setup
: (instance)on_after_setup
: (instance)on_before_stop
: (instance)on_after_stop
: (instance)on_before_worker_setup
: (instance, worker_ctx)on_after_worker_setup
: (instance, worker_ctx)on_before_worker_result
: (instance, worker_ctx, result, exc_info)on_after_worker_result
: (instance, worker_ctx, result, exc_info)
How to use callbacks:
from nameko.rpc import rpc
import MongoDatabase from nameko_mongodb
class YourService(object):
name = 'your_service'
database = MongoDatabase(
on_before_setup=lambda x: print("Start setup DP"),
on_after_setup=lambda x: print("Stop setup DP"),
)
@rpc
def find_item(self):
return self.database.your_collection.find_one()
Contribution
I'd be glad to see your pull requests
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nameko_mongodb-1.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1fcc3c50dd064f27f27fe183b3ec50d84232b8a15591b54066c546f4830e31b |
|
MD5 | b947f3bddb254001de0c8548401e0c34 |
|
BLAKE2b-256 | 906ef8303d1597d9c8e4fcadcc2fccc697a172ccdb9622fdd3d1a8be488a721c |