Skip to main content

Hook db connection when you're running a long term sleep crawler assignment.

Project description

Flask Database Pacemaker

python_requires>=3.6
Flask>=1.0.2
Flask-APScheduler>=1.11.0
Flask-SQLAlchemy>=2.3.2

- Log

# date version
1 2020/12/03 v1.2.3
2 2020/12/03 v1.2.4
3 2020/12/05 v1.2.5
4 2020/12/07 v1.2.7

v1.2.3

  • Fixed AttributeError: 'NoneType' object has no attribute 'items' issue due to mysql connection has been terminated.

v1.2.4

  • Handle sqlalchemy.exc.ProgrammingError, the problem cause by some specific ORM models not exist in current database.
  • Handle database not found issue.
  • Raise error if MODELS_PATH_LIST has not been set properly.

v1.2.5

  • Replace new line of the error raise from sqlalchemy.
  • Change datetime format method.
  • Make the code efficient.

v1.2.7

  • Add validation, testing awake() before assign the job to APScheduler.

- How to use

1. Add setting into config.py

  • DB_PACEMAKER_SWITCH is required
  • MODELS_PATH_LIST is required
  • POKE_DB_INTERVAL default: 1 hour.
# for DBPacemaker - 透過定時排程請求DB,保持連線
DB_PACEMAKER_SWITCH = True if os.environ['ENVIRONMENT'] == 'develop' else False
MODELS_PATH_LIST = ['spyder_common.models']
POKE_DB_INTERVAL = 60 * 60

2. Establish in app.py

Note: Append this after you declared config and app

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_dbpacemaker import DBPacemaker  # import package
from config import Config

app = Flask(__name__)
config = Config()
app.config.from_object(config)

db = SQLAlchemy(app)

DBPacemaker.run(app, db=db, config=config)  # setup here
  • If you've set a scheduler
DBPacemaker.run(app, db=db, config=config, secheduler=your_flask_apscheduler)

Note: The job permanent trigger is interval.

If you like my work, please consider buying me a coffee or PayPal Thanks for your support! Cheers! 🎉 Buy Me A Coffee

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Flask-DBPacemaker-1.2.8.tar.gz (5.5 kB view details)

Uploaded Source

File details

Details for the file Flask-DBPacemaker-1.2.8.tar.gz.

File metadata

  • Download URL: Flask-DBPacemaker-1.2.8.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for Flask-DBPacemaker-1.2.8.tar.gz
Algorithm Hash digest
SHA256 f8ad5a18d32ce1dba7f678a9f2ecc9d0de6367ce3282f2149587f78c0038c3ae
MD5 5916f955b6e21574d7e6865f6307e280
BLAKE2b-256 6802cdffd2ea8ef2f5db47ba6f54c0762490254be165144fd3fa2cb13697d23b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page