Skip to main content

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

Metadata

Release files for Flask-DBPacemaker 1.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Flask-DBPacemaker 1.3.2
File Size Uploaded
Flask-DBPacemaker-1.3.2.tar.gz 5.5 kB Details

Release files / Flask-DBPacemaker-1.3.2.tar.gz

Download URL Flask-DBPacemaker-1.3.2.tar.gz
Size 5.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8bb33a971b5a175641bf88e717e6b17ce85d2bd2fe3618b6b3f1ab52ebfb2513
BLAKE2b-256 checksum
How to use checksums
a7df3dadd6bed4ac4818f4c75c987423fbd404446cca612f783f14b68780b63c
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

1.3.2 This release

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.8

1 release file

1.2.7

1 release file

1.2.6

1 release file

1.2.5

1 release file

1.2.4

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.1

1 release file

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page