kopia lustrzana https://github.com/glidernet/ogn-python
Add central configuration by python modules
Configuration module is loaded from environment variable OGN_CONFIG_MODULE, defaults to "config/defaults.py".pull/35/head
rodzic
539630ea91
commit
6aec9ee35d
|
@ -93,6 +93,14 @@ The following scripts run in the foreground and should be deamonized
|
||||||
celery -A ogn.collect worker -l info
|
celery -A ogn.collect worker -l info
|
||||||
```
|
```
|
||||||
|
|
||||||
|
To load a custom configuration, create a file `myconfig.py` (see [config/default.py](config/default.py))
|
||||||
|
and set the environment variable `OGN_CONFIG_MODULE` accordingly.
|
||||||
|
|
||||||
|
```
|
||||||
|
export OGN_CONFIG_MODULE="myconfig.py"
|
||||||
|
./manage.py gateway.run
|
||||||
|
```
|
||||||
|
|
||||||
### manage.py - CLI options
|
### manage.py - CLI options
|
||||||
```
|
```
|
||||||
usage: manage.py [<namespace>.]<command> [<args>]
|
usage: manage.py [<namespace>.]<command> [<args>]
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
SQLALCHEMY_DATABASE_URI = 'sqlite:///beacons.db'
|
||||||
|
|
||||||
|
BROKER_URL = 'redis://localhost:6379/0'
|
||||||
|
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
|
|
@ -1,21 +1,19 @@
|
||||||
|
import os
|
||||||
|
import importlib
|
||||||
from sqlalchemy import create_engine
|
from sqlalchemy import create_engine
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
|
|
||||||
from celery import Celery
|
from celery import Celery
|
||||||
from celery.signals import worker_init, worker_shutdown
|
from celery.signals import worker_init, worker_shutdown
|
||||||
|
|
||||||
app = Celery('ogn.collect',
|
os.environ.setdefault('OGN_CONFIG_MODULE', 'config.default')
|
||||||
broker='redis://localhost:6379/0',
|
config = importlib.import_module(os.environ['OGN_CONFIG_MODULE'])
|
||||||
backend='redis://localhost:6379/0',
|
|
||||||
include=["ogn.collect.database", "ogn.collect.logbook"])
|
|
||||||
|
|
||||||
DB_URI = 'sqlite:///beacons.db'
|
|
||||||
|
|
||||||
|
|
||||||
@worker_init.connect
|
@worker_init.connect
|
||||||
def connect_db(signal, sender):
|
def connect_db(signal, sender):
|
||||||
# Load settings like DB_URI...
|
# Load settings like DB_URI...
|
||||||
engine = create_engine(DB_URI, echo=False)
|
engine = create_engine(config.SQLALCHEMY_DATABASE_URI, echo=False)
|
||||||
|
|
||||||
Session = sessionmaker(bind=engine)
|
Session = sessionmaker(bind=engine)
|
||||||
sender.app.session = Session()
|
sender.app.session = Session()
|
||||||
|
@ -26,5 +24,8 @@ def close_db(signal, sender):
|
||||||
sender.app.session.close()
|
sender.app.session.close()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
app = Celery('ogn.collect',
|
||||||
app.start()
|
include=["ogn.collect.database",
|
||||||
|
"ogn.collect.logbook"])
|
||||||
|
|
||||||
|
app.config_from_envvar("OGN_CONFIG_MODULE")
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
|
import os
|
||||||
|
import importlib
|
||||||
from sqlalchemy import create_engine
|
from sqlalchemy import create_engine
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
engine = create_engine('sqlite:///beacons.db', echo=False)
|
|
||||||
|
|
||||||
|
os.environ.setdefault('OGN_CONFIG_MODULE', 'config.default')
|
||||||
|
|
||||||
|
config = importlib.import_module(os.environ['OGN_CONFIG_MODULE'])
|
||||||
|
engine = create_engine(config.SQLALCHEMY_DATABASE_URI, echo=False)
|
||||||
|
|
||||||
Session = sessionmaker(bind=engine)
|
Session = sessionmaker(bind=engine)
|
||||||
session = Session()
|
session = Session()
|
||||||
|
|
Ładowanie…
Reference in New Issue