v0.2: Added dockerignore; Added SCHEDULE setting (#1); Updated libs;
This commit is contained in:
28
start.py
28
start.py
@@ -5,7 +5,7 @@ The script provides functionality:
|
||||
3. Scheduled to run every day
|
||||
|
||||
You can set some envs vars:
|
||||
- DEBUG - run every hour if 1, default is 0
|
||||
- SCHEDULE - can be monthly, weekly, daily (by default), hourly
|
||||
- TIME_ZONE - timezone for datetime using in filenames, default is Europe/Tallinn
|
||||
- COMPRESSION_LEVEL - level of ZSTD compression, default is 10
|
||||
- PREFIX - prefix for backup filename, default is empty
|
||||
@@ -30,7 +30,7 @@ import pytz
|
||||
import schedule
|
||||
from boto3.exceptions import S3UploadFailedError
|
||||
|
||||
DEBUG = int(os.getenv("DEBUG", 0))
|
||||
SCHEDULE = os.getenv("SCHEDULE", "DAILY")
|
||||
TIME_ZONE = pytz.timezone(os.getenv("TIME_ZONE", "Europe/Tallinn"))
|
||||
PREFIX = os.getenv("PREFIX", "")
|
||||
FOLDER_TO_BACKUP = os.getenv("FOLDER_TO_BACKUP", "/backup")
|
||||
@@ -120,13 +120,23 @@ def run_threaded(job_func):
|
||||
job_thread.start()
|
||||
|
||||
|
||||
if not DEBUG:
|
||||
print("Setting up task launch 'run_backup_files' every day")
|
||||
schedule.every().day.at("01:05").do(run_threaded, run_backup_files)
|
||||
else:
|
||||
print("Setting up task launch 'run_backup_files' now and every hour")
|
||||
run_threaded(run_backup_files)
|
||||
schedule.every().hour.at("00:05").do(run_threaded, run_backup_files)
|
||||
match SCHEDULE:
|
||||
case "MONTHLY":
|
||||
print("Scheduled to run backup task every 4 weeks")
|
||||
schedule.every(4).weeks.do(run_threaded, run_backup_files)
|
||||
case "WEEKLY":
|
||||
print("Scheduled to run backup task every Monday")
|
||||
schedule.every().monday.at("02:00").do(run_threaded, run_backup_files)
|
||||
case "HOURLY":
|
||||
print("Scheduled to run backup task every hour")
|
||||
schedule.every().hour.at(":05").do(run_threaded, run_backup_files)
|
||||
# For any other values, incl DAILY - run daily
|
||||
case _:
|
||||
print("Scheduled to run backup task every day at 02:00")
|
||||
schedule.every().day.at("02:00").do(run_threaded, run_backup_files)
|
||||
|
||||
# Run first job immediately
|
||||
schedule.run_all()
|
||||
|
||||
while True:
|
||||
schedule.run_pending()
|
||||
|
||||
Reference in New Issue
Block a user