Exemple #1
0
def create_schedules(events):
    schedules = []

    for job in api.get_jobs():
        cmd_sch = croniter(job.interval, job.last_time_run)

        # If we have missed more than one occurrence only run one
        time = cmd_sch.get_next(datetime)
        next_time = cmd_sch.get_next(datetime)
        if next_time <= datetime.now():
            time = next_time
            next_time = cmd_sch.get_next(datetime)

        if (time - datetime.now()) < SCHEDULER_UPDATE_INTERVAL:
            job.last_time_run = time
            api.set_job_time(job)

            next_worker = api.get_next_worker()
            if next_worker is None:
                break

            schedule = api.Schedule(time, job, next_worker)
            schedules.append(schedule)

    api.add_schedules(sort_schedules(schedules))

    delay = SCHEDULER_UPDATE_INTERVAL.total_seconds()
    events.enter(delay, 1, create_schedules, (events,))
Exemple #2
0
def create_schedules(events):
    schedules = []

    for job in api.get_jobs():
        cmd_sch = croniter(job.interval, job.last_time_run)

        # If we have missed more than one occurrence only run one
        time = cmd_sch.get_next(datetime)
        next_time = cmd_sch.get_next(datetime)
        if next_time <= datetime.now():
            time = next_time
            next_time = cmd_sch.get_next(datetime)

        if (time - datetime.now()) < SCHEDULER_UPDATE_INTERVAL:
            job.last_time_run = time
            api.set_job_time(job)

            next_worker = api.get_next_worker()
            if next_worker is None:
                break

            schedule = api.Schedule(time, job, next_worker)
            schedules.append(schedule)

    api.add_schedules(sort_schedules(schedules))

    delay = SCHEDULER_UPDATE_INTERVAL.total_seconds()
    events.enter(delay, 1, create_schedules, (events, ))
Exemple #3
0
 def test_set_job_time_random_job_from_many(self):
     checkpoint1 = datetime.now()
     num_of_jobs = MANY
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     # Pop a random job in list to modify its time
     job = test_jobs.pop(random.randrange(len(test_jobs)))
     api.set_job_time(job)
     checkpoint2 = datetime.now()
     # Verify that the job's last time run was updated correctly
     self.assertTrue(job.last_time_run > checkpoint1 and
                     job.last_time_run < checkpoint2)
Exemple #4
0
 def test_set_job_time_one_job(self):
     checkpoint1 = datetime.now()
     num_of_jobs = ONE
     # Create a crontab with one job
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     # Pop the only job in the list to modify its time
     job = test_jobs.pop()
     api.set_job_time(job)
     checkpoint2 = datetime.now()
     # Verify that the job's last time run was updated correctly
     self.assertTrue(job.last_time_run > checkpoint1 and
                     job.last_time_run < checkpoint2)
Exemple #5
0
 def test_set_job_time_random_job_from_many(self):
     checkpoint1 = datetime.now()
     num_of_jobs = MANY
     # Create a crontab with many jobs
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     # Pop a random job in list to modify its time
     job = test_jobs.pop(random.randrange(len(test_jobs)))
     api.set_job_time(job)
     checkpoint2 = datetime.now()
     # Verify that the job's last time run was updated correctly
     self.assertTrue(job.last_time_run > checkpoint1
                     and job.last_time_run < checkpoint2)
Exemple #6
0
 def test_set_job_time_one_job(self):
     checkpoint1 = datetime.now()
     num_of_jobs = ONE
     # Create a crontab with one job
     test_jobs = create_test_tab(num_of_jobs, user1)
     api.set_jobs(test_jobs, user1)
     # Pop the only job in the list to modify its time
     job = test_jobs.pop()
     api.set_job_time(job)
     checkpoint2 = datetime.now()
     # Verify that the job's last time run was updated correctly
     self.assertTrue(job.last_time_run > checkpoint1
                     and job.last_time_run < checkpoint2)