Release 0.3: Added dockerignore (#6); Added SCHEDULE setting (#7); Added support postgres 15 (#8); Updated libs;
This commit is contained in:
27
start.py
27
start.py
@@ -6,7 +6,7 @@ The script provides functionality:
|
||||
4. Scheduled to run every hour
|
||||
|
||||
You can set some envs vars:
|
||||
- DEBUG - run every 1 minute if 1, default is 0
|
||||
- SCHEDULE - can be monthly, weekly, daily, hourly (by default)
|
||||
- DB_USER - user to connect DB, default is postgres
|
||||
- DB_PASSWORD - password to connect DB, default is postgres
|
||||
- DB_HOST - host to connect DB, default is localhost
|
||||
@@ -37,7 +37,7 @@ import pytz
|
||||
import schedule
|
||||
from boto3.exceptions import S3UploadFailedError
|
||||
|
||||
DEBUG = int(os.getenv("DEBUG", 0))
|
||||
SCHEDULE = os.getenv("SCHEDULE", "HOURLY")
|
||||
DB_USER = os.getenv("DB_USER", "postgres")
|
||||
DB_PASSWORD = os.getenv("DB_PASSWORD", "postgres")
|
||||
DB_HOST = os.getenv("DB_HOST", "localhost")
|
||||
@@ -155,12 +155,23 @@ def run_threaded(job_func):
|
||||
job_thread.start()
|
||||
|
||||
|
||||
if not DEBUG:
|
||||
print("Setting up task launch 'run_backup_database' every hour")
|
||||
schedule.every().hour.at(":05").do(run_threaded, run_backup_database)
|
||||
else:
|
||||
print("Setting up task launch 'run_backup_database' every 5 minutes")
|
||||
schedule.every(5).minutes.do(run_threaded, run_backup_database)
|
||||
match SCHEDULE:
|
||||
case "MONTHLY":
|
||||
print("Scheduled to run backup task every 4 weeks")
|
||||
schedule.every(4).weeks.do(run_threaded, run_backup_database)
|
||||
case "WEEKLY":
|
||||
print("Scheduled to run backup task every Monday")
|
||||
schedule.every().monday.at("02:00").do(run_threaded, run_backup_database)
|
||||
case "DAILY":
|
||||
print("Scheduled to run backup task every day at 02:00")
|
||||
schedule.every().day.at("02:00").do(run_threaded, run_backup_database)
|
||||
# For any other values, incl HOURLY - run hourly
|
||||
case _:
|
||||
print("Scheduled to run backup task every hour")
|
||||
schedule.every().hour.at(":05").do(run_threaded, run_backup_database)
|
||||
|
||||
# Run first job immediately
|
||||
schedule.run_all()
|
||||
|
||||
while True:
|
||||
schedule.run_pending()
|
||||
|
||||
Reference in New Issue
Block a user