Skip to content

Commit

Permalink
Add scheduling by year day
Browse files Browse the repository at this point in the history
  • Loading branch information
t3eHawk committed Dec 8, 2022
1 parent 41a6c77 commit 037aec4
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 17 deletions.
3 changes: 2 additions & 1 deletion db/oracle.sql
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@ create table pd_schedule (
job_name varchar2(30 char),
job_description varchar2(30 char),
status varchar2(1 char) default 'N',
monthday varchar2(100 char),
hour varchar2(100 char),
minute varchar2(100 char),
second varchar2(100 char),
monthday varchar2(100 char),
weekday varchar2(100 char),
yearday varchar2(100 char),
trigger_id number(*, 0),
start_date date,
end_date date,
Expand Down
3 changes: 2 additions & 1 deletion db/sqlite.sql
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@ create table pd_schedule (
job_name text,
job_description text,
status text default 'N',
monthday text,
hour text,
minute text,
second text,
monthday text,
weekday text,
yearday text,
trigger_id integer,
start_date text,
end_date text,
Expand Down
38 changes: 23 additions & 15 deletions pydin/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,15 +107,16 @@ class Job:
"""Represents scheduler job."""

def __init__(self, id, scheduler, name=None, desc=None, status=None,
mday=None, wday=None, hour=None, min=None, sec=None,
trigger_id=None, start_timestamp=None, end_timestamp=None,
mday=None, hour=None, min=None, sec=None,
wday=None, yday=None, trigger_id=None,
start_timestamp=None, end_timestamp=None,
env=None, args=None, timeout=None, parallelism=None,
rerun_times=None, rerun_limit=None, rerun_days=None,
sleep_period=None, tag=None, record_id=None, added=None):
self.id, self.scheduler = id, scheduler
self.setup(name=name, desc=desc, status=status,
hour=hour, min=min, sec=sec,
mday=mday, wday=wday, trigger_id=trigger_id,
mday=mday, hour=hour, min=min, sec=sec,
wday=wday, yday=yday, trigger_id=trigger_id,
start_timestamp=start_timestamp,
end_timestamp=end_timestamp,
env=env, args=args,
Expand Down Expand Up @@ -153,10 +154,11 @@ def config(self):
desc=self.desc,
status=self.status,
mday=self.mday,
wday=self.wday,
hour=self.hour,
min=self.min,
sec=self.sec,
wday=self.wday,
yday=self.yday,
trigger_id=self.trigger_id,
start_timestamp=self.start_timestamp,
end_timestamp=self.end_timestamp,
Expand All @@ -170,8 +172,9 @@ def config(self):
)

def setup(self, name=None, desc=None, status=None,
mday=None, wday=None, hour=None, min=None, sec=None,
trigger_id=None, start_timestamp=None, end_timestamp=None,
mday=None, hour=None, min=None, sec=None,
wday=None, yday=None, trigger_id=None,
start_timestamp=None, end_timestamp=None,
env=None, args=None, timeout=None, parallelism=None,
rerun_times=None, rerun_limit=None, rerun_days=None,
sleep_period=None, tag=None, record_id=None, added=None):
Expand All @@ -180,10 +183,11 @@ def setup(self, name=None, desc=None, status=None,
self.desc = desc
self.status = to_boolean(status)
self.mday = mday
self.wday = wday
self.hour = hour
self.min = min
self.sec = sec
self.wday = wday
self.yday = yday
self.trigger_id = trigger_id
self.start_timestamp = to_timestamp(start_timestamp)
self.end_timestamp = to_timestamp(end_timestamp)
Expand Down Expand Up @@ -226,11 +230,12 @@ def from_schedule(self, record):
self.setup(name=record.job_name,
desc=record.job_description,
status=record.status,
mday=record.monthday,
hour=record.hour,
min=record.minute,
sec=record.second,
mday=record.monthday,
wday=record.weekday,
yday=record.yearday,
trigger_id=record.trigger_id,
start_timestamp=record.start_date,
end_timestamp=record.end_date,
Expand All @@ -251,10 +256,11 @@ def from_run(self, record):
desc=record.job_description,
status=record.status,
mday=record.monthday,
wday=record.weekday,
hour=record.hour,
min=record.minute,
sec=record.second,
wday=record.weekday,
yday=record.yearday,
trigger_id=record.trigger_id,
start_timestamp=record.start_date,
end_timestamp=record.end_date,
Expand Down Expand Up @@ -306,10 +312,11 @@ def was_scheduled(self, timestamp):
time = self.scheduler.parser(timestamp)
if (
self.scheduler.matcher(self.mday, time.mday)
and self.scheduler.matcher(self.wday, time.wday)
and self.scheduler.matcher(self.hour, time.hour)
and self.scheduler.matcher(self.min, time.min)
and self.scheduler.matcher(self.sec, time.sec)
and self.scheduler.matcher(self.wday, time.wday)
and self.scheduler.matcher(self.yday, time.yday)
):
return True
else:
Expand Down Expand Up @@ -507,7 +514,7 @@ def list_failed_jobs(self):
select = (sa.select([h.c.id, h.c.job_id, h.c.run_tag, h.c.added,
s.c.job_name, s.c.job_description, s.c.status,
s.c.hour, s.c.minute, s.c.second,
s.c.monthday, s.c.weekday,
s.c.yearday, s.c.monthday, s.c.weekday,
s.c.trigger_id, s.c.start_date, s.c.end_date,
s.c.environment, s.c.arguments,
s.c.timeout, s.c.parallelism, s.c.sleep_period,
Expand All @@ -531,7 +538,7 @@ def list_sleeping_jobs(self):
select = (sa.select([h.c.id, h.c.job_id, h.c.run_tag, h.c.added,
s.c.job_name, s.c.job_description, s.c.status,
s.c.hour, s.c.minute, s.c.second,
s.c.monthday, s.c.weekday,
s.c.yearday, s.c.monthday, s.c.weekday,
s.c.trigger_id, s.c.start_date, s.c.end_date,
s.c.environment, s.c.arguments,
s.c.timeout, s.c.parallelism, s.c.sleep_period,
Expand All @@ -551,10 +558,11 @@ def parser(self, timestamp):
namespace = types.SimpleNamespace(
timestamp=timestamp,
mday=structure.tm_mday,
wday=structure.tm_wday+1,
hour=structure.tm_hour,
min=structure.tm_min,
sec=structure.tm_sec
sec=structure.tm_sec,
wday=structure.tm_wday+1,
yday=structure.tm_yday
)
return namespace

Expand Down

0 comments on commit 037aec4

Please sign in to comment.