mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-14 17:22:56 -07:00
Schedule jobs using UTC to prevent tiggers in the past
This commit is contained in:
parent
43b350a1cc
commit
eea1cf1d2c
5 changed files with 25 additions and 17 deletions
|
@ -71,7 +71,7 @@ PIDFILE = None
|
|||
NOFORK = False
|
||||
DOCKER = False
|
||||
|
||||
SCHED = BackgroundScheduler()
|
||||
SCHED = None
|
||||
SCHED_LOCK = threading.Lock()
|
||||
|
||||
NOTIFY_QUEUE = Queue()
|
||||
|
@ -509,11 +509,11 @@ def schedule_job(func, name, hours=0, minutes=0, seconds=0, args=None):
|
|||
logger.info(u"Removed background task: %s", name)
|
||||
elif job.trigger.interval != datetime.timedelta(hours=hours, minutes=minutes):
|
||||
SCHED.reschedule_job(name, trigger=IntervalTrigger(
|
||||
hours=hours, minutes=minutes, seconds=seconds), args=args)
|
||||
hours=hours, minutes=minutes, seconds=seconds, timezone=pytz.UTC), args=args)
|
||||
logger.info(u"Re-scheduled background task: %s", name)
|
||||
elif hours > 0 or minutes > 0 or seconds > 0:
|
||||
SCHED.add_job(func, id=name, trigger=IntervalTrigger(
|
||||
hours=hours, minutes=minutes, seconds=seconds), args=args)
|
||||
hours=hours, minutes=minutes, seconds=seconds, timezone=pytz.UTC), args=args)
|
||||
logger.info(u"Scheduled background task: %s", name)
|
||||
|
||||
|
||||
|
@ -521,6 +521,11 @@ def start():
|
|||
global _STARTED
|
||||
|
||||
if _INITIALIZED:
|
||||
global SCHED
|
||||
SCHED = BackgroundScheduler(timezone=pytz.UTC)
|
||||
activity_handler.ACTIVITY_SCHED = BackgroundScheduler(timezone=pytz.UTC)
|
||||
newsletter_handler.NEWSLETTER_SCHED = BackgroundScheduler(timezone=pytz.UTC)
|
||||
|
||||
# Start the scheduler for stale stream callbacks
|
||||
activity_handler.ACTIVITY_SCHED.start()
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@ import datetime
|
|||
import os
|
||||
import time
|
||||
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
from apscheduler.triggers.date import DateTrigger
|
||||
import pytz
|
||||
|
||||
import plexpy
|
||||
import activity_processor
|
||||
|
@ -29,7 +29,7 @@ import notification_handler
|
|||
import pmsconnect
|
||||
|
||||
|
||||
ACTIVITY_SCHED = BackgroundScheduler()
|
||||
ACTIVITY_SCHED = None
|
||||
|
||||
RECENTLY_ADDED_QUEUE = {}
|
||||
|
||||
|
@ -488,11 +488,13 @@ def schedule_callback(id, func=None, remove_job=False, args=None, **kwargs):
|
|||
else:
|
||||
ACTIVITY_SCHED.reschedule_job(
|
||||
id, args=args, trigger=DateTrigger(
|
||||
run_date=datetime.datetime.now() + datetime.timedelta(**kwargs)))
|
||||
run_date=datetime.datetime.now(pytz.UTC) + datetime.timedelta(**kwargs),
|
||||
timezone=pytz.UTC))
|
||||
elif not remove_job:
|
||||
ACTIVITY_SCHED.add_job(
|
||||
func, args=args, id=id, trigger=DateTrigger(
|
||||
run_date=datetime.datetime.now() + datetime.timedelta(**kwargs)))
|
||||
run_date=datetime.datetime.now(pytz.UTC) + datetime.timedelta(**kwargs),
|
||||
timezone=pytz.UTC))
|
||||
|
||||
|
||||
def force_stop_stream(session_key, title, user):
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
import os
|
||||
import time
|
||||
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
from apscheduler.triggers.cron import CronTrigger
|
||||
import email.utils
|
||||
|
||||
|
@ -26,7 +25,7 @@ import logger
|
|||
import newsletters
|
||||
|
||||
|
||||
NEWSLETTER_SCHED = BackgroundScheduler()
|
||||
NEWSLETTER_SCHED = None
|
||||
|
||||
|
||||
def add_newsletter_each(newsletter_id=None, notify_action=None, **kwargs):
|
||||
|
@ -62,11 +61,13 @@ def schedule_newsletter_job(newsletter_job_id, name='', func=None, remove_job=Fa
|
|||
logger.info(u"Tautulli NewsletterHandler :: Removed scheduled newsletter: %s" % name)
|
||||
else:
|
||||
NEWSLETTER_SCHED.reschedule_job(
|
||||
newsletter_job_id, args=args, trigger=CronTrigger().from_crontab(cron))
|
||||
newsletter_job_id, args=args, trigger=CronTrigger().from_crontab(
|
||||
cron, timezone=plexpy.SYS_TIMEZONE))
|
||||
logger.info(u"Tautulli NewsletterHandler :: Re-scheduled newsletter: %s" % name)
|
||||
elif not remove_job:
|
||||
NEWSLETTER_SCHED.add_job(
|
||||
func, args=args, id=newsletter_job_id, trigger=CronTrigger.from_crontab(cron))
|
||||
func, args=args, id=newsletter_job_id, trigger=CronTrigger().from_crontab(
|
||||
cron, timezone=plexpy.SYS_TIMEZONE))
|
||||
logger.info(u"Tautulli NewsletterHandler :: Scheduled newsletter: %s" % name)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue