Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nonetheless/flask-task-monitor
Flask Monitor a flask plugin to monitor thread task
https://github.com/nonetheless/flask-task-monitor
flask k8s monitor mysql
Last synced: 7 days ago
JSON representation
Flask Monitor a flask plugin to monitor thread task
- Host: GitHub
- URL: https://github.com/nonetheless/flask-task-monitor
- Owner: nonetheless
- Created: 2019-04-10T07:41:11.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-06-03T12:30:52.000Z (over 5 years ago)
- Last Synced: 2024-09-23T12:32:57.037Z (10 days ago)
- Topics: flask, k8s, monitor, mysql
- Language: Python
- Homepage:
- Size: 3.26 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Flask Task Monitor
A flask plugin to monitor thread task## How to use
### Install
To install from source, download the source code, then run this:
```bash
python setup.py install
```
Or install with pip:
```bash
pip install Flask-Task-Monitor
```
### Setup
Adding the extension to your Flask app is simple:
```python
from flask import Flask
from flask_monitor import Monitor
monitor = Monitor(config={
'FLASK_MONITOR_PERIOD': 1
})
app = Flask(__name__)
monitor.init_app(app)```
Add monitered task with database
```python
from flask_monitor import DBMonitor
from yourapplication import monitorclass DemoMonitorJob(DBMonitor):
def __init__(self, a, b, c):
super(DemoMonitorJob, self).__init__()
pass@classmethod
def redo(cls, *args, **kwargs):
'''
execute when your job is crashed
'''
pass@classmethod
def roll_back(cls, *args, **kwargs):
'''
execute after redo when catch exception
'''
passdef do(self, *args, **kwargs):
'''your own job which needs to monitered
'''
passmonitor.add_check_monitor(DemoMonitorJob)
```
### Your own monitor
You can code your own monitor by redis, zookeeper, etcd and more
```python
from flask_monitor import BaseMonitorInterface
class YourMonitor(BaseMonitorInterface):
def lock(self, *args, **kwargs):
'''
when called your do function
'''
pass
def unlock(self, args, **kwargs):
'''
when your do function return
'''
pass@classmethod
def check(cls, *args, **kwargs):
'''
your own check function:
it will return to
try:
redo(list, dict)
except Expection:
rollback(list,dict)
'''
return list, dict
@abstractmethod
def do(self, *args, **kwargs):
pass
@classmethod
@abstractmethod
def redo(self, *args, **kwargs):
pass
@classmethod
@abstractmethod
def rollback(self, *args, **kwargs):
pass
```