Release 0.3: Added dockerignore (#6); Added SCHEDULE setting (#7); Added support postgres 15 (#8); Updated libs;

This commit is contained in:
Eugene Morozov
2023-12-10 08:05:46 +00:00
parent fdc1825e19
commit d639be40e9
9 changed files with 204 additions and 114 deletions

View File

@@ -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()