rq / rq-scheduler

A lightweight library that adds job scheduling capabilities to RQ (Redis Queue)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cron is not scheduling as per the provided string

dhamechavivek95 opened this issue · comments

@selwin
I have my schedule.py file

from redis import Redis
from rq_scheduler import Scheduler
from my_file import My_Function

def run():
    r = Redis()
    scheduler = Scheduler(connection=r)

    scheduler.cron("0 * * * *", func=My_Function,
                   queue_name=My_Queue_Name)

Now in my_file.py

from dateTime import dateTime, timedelta

def My_Function():

    try:

        Logger.log.warning("$" * 40)

        from_time = \
            int(datetime.timestamp(datetime.now() - timedelta(hours=2)))
        to_time = int(datetime.timestamp(datetime.now() - timedelta(hours=1)))

        Logger.log.warning("Email")
        Logger.log.warning("From Time")
        Logger.log.warning(from_time)
        Logger.log.warning("To Time")
        Logger.log.warning(to_time)

It runs exactly 22 times in an hour at 10:31 and 10:32 and within a difference of seconds. I have my script in production, Please help me with this.

@dhamechavivek95 TTBOMK this is caused due to duplication of jobs. The problem is that previously scheduled jobs were run when you restarted your scheduler / worker.

I had faced the same problem, check out the solution given by @ipmb here - #51 (comment)

It basically subclasses rqscheduler and first clears the previous jobs and then registers new one's