python - RQ scheduler sending multiple emails -


i using django rq scheduler

scheduled_tasks.py

from redis import redis rq_scheduler import scheduler datetime import datetime  scheduler = scheduler(connection=redis())  # scheduler "default" queue  # scheduler = django_rq.get_scheduler("default") = datetime.now() start = now.replace(hour=8, minute=00, second=0, microsecond=0) scheduler.schedule(     scheduled_time=start,  # time first execution, in utc timezone     func=broadcast_approved_jobs,  # function queued     interval=86400  # time before function called again, in seconds     repeat=none  # repeat number of times (none means repeat forever) ) 

i need run scheduler once in day.

but sending mails repeatedly. think scheduler calling broadcast_approved_jobs multiple times. idea why?

(take 2) function i'm using, not written me, forget found it. if scheduler being called multiple times, @ least remove existing jobs.

   def schedule_once(scheduled_time, func, args=none, kwargs=none,             interval=none, repeat=none, result_ttl=none, timeout=none, queue_name=none):         """         schedule job once or reschedule when interval changes         """           if not func in functions or not interval in functions[func] \                 or len(functions[func]) > 1:             # clear scheduled jobs function             map(scheduler.cancel, filter(lambda x: x.func == func, jobs))              # schedule new interval             scheduler.schedule(scheduled_time, func, interval=interval, repeat=repeat)         schedule_once(         scheduled_time=datetime.utcnow(), # time first execution, in utc timezone         func=readmail,                     # function queued         interval=120,                   # time before function called again, in seconds         repeat=0                      # repeat number of times (none means repeat forever)     ) 

Comments