mirror of
https://github.com/bbilly1/tilefy.git
synced 2024-08-02 16:03:34 +00:00
rebuild jobs after config change
This commit is contained in:
parent
6b8a75b265
commit
88f4d4d84a
@ -15,23 +15,30 @@ class TilefyScheduler:
|
||||
CRON_DEFAULT = "0 0 * * *"
|
||||
|
||||
def __init__(self):
|
||||
self.scheduler = False
|
||||
self.tiles = False
|
||||
self.scheduler = BackgroundScheduler(timezone=environ.get("TZ", "UTC"))
|
||||
self.add_job_store()
|
||||
self.tiles = self.get_tiles()
|
||||
|
||||
def setup_schedule(self):
|
||||
"""startup"""
|
||||
def get_tiles(self):
|
||||
"""get all tiles set in config"""
|
||||
config = TilefyRedis().get_message("config")
|
||||
if not config:
|
||||
print("no tiles defined in tiles.yml")
|
||||
return False
|
||||
|
||||
return config["tiles"]
|
||||
|
||||
def setup_schedule(self):
|
||||
"""startup"""
|
||||
if not self.tiles:
|
||||
print("no tiles defined in tiles.yml")
|
||||
return
|
||||
|
||||
self.tiles = config["tiles"]
|
||||
self.scheduler = BackgroundScheduler(timezone=environ.get("TZ", "UTC"))
|
||||
self.add_job_store()
|
||||
jobs = self.build_jobs()
|
||||
self.add_jobs(jobs)
|
||||
self.add_watcher()
|
||||
|
||||
if not self.scheduler.running:
|
||||
self.scheduler.start()
|
||||
|
||||
def add_job_store(self):
|
||||
@ -44,6 +51,18 @@ class TilefyScheduler:
|
||||
port=environ.get("REDIS_PORT"),
|
||||
)
|
||||
|
||||
def clear_old(self):
|
||||
"""remove old jobs before recreating"""
|
||||
if not self.scheduler.running:
|
||||
self.scheduler.start()
|
||||
|
||||
all_jobs = self.scheduler.get_jobs()
|
||||
for job in all_jobs:
|
||||
print(job)
|
||||
if job.id == "watcher":
|
||||
continue
|
||||
self.scheduler.remove_job(job.id)
|
||||
|
||||
def build_jobs(self):
|
||||
"""build list of expected jobs"""
|
||||
jobs = []
|
||||
|
10
tilefy/src/scheduler_rebuild.py
Normal file
10
tilefy/src/scheduler_rebuild.py
Normal file
@ -0,0 +1,10 @@
|
||||
"""rebuild jobs in scheduler"""
|
||||
|
||||
from src import scheduler
|
||||
|
||||
|
||||
def rebuild():
|
||||
"""rebuild"""
|
||||
handler = scheduler.TilefyScheduler()
|
||||
handler.clear_old()
|
||||
handler.setup_schedule()
|
@ -3,6 +3,7 @@
|
||||
import hashlib
|
||||
import os
|
||||
|
||||
from src.scheduler_rebuild import rebuild
|
||||
from src.template import create_all_tiles
|
||||
from src.tilefy_redis import TilefyRedis, load_yml
|
||||
|
||||
@ -24,6 +25,7 @@ class Watcher:
|
||||
load_yml()
|
||||
create_all_tiles()
|
||||
self._store_last()
|
||||
rebuild()
|
||||
|
||||
def is_changed(self):
|
||||
"""check if file has changed"""
|
||||
|
Loading…
Reference in New Issue
Block a user