Repository code for the new job metrics table
parent
a2bf81efd7
commit
4286aff8b2
|
@ -1,2 +1,4 @@
|
|||
from .entity.api import ApiMetric
|
||||
from .entity.job import JobMetric
|
||||
from .repository.api import ApiMetricsRepository
|
||||
from .repository.job import JobRepository
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
from dataclasses import dataclass
|
||||
from datetime import date, datetime
|
||||
|
||||
|
||||
@dataclass
|
||||
class JobMetric(object):
|
||||
job_name: str
|
||||
batch_date: date
|
||||
start_ts: datetime
|
||||
end_ts: datetime
|
||||
command: str
|
||||
success: bool
|
||||
id: str = None
|
|
@ -0,0 +1,18 @@
|
|||
from dataclasses import asdict
|
||||
|
||||
from ...repository_base import RepositoryBase
|
||||
from ..entity.job import JobMetric
|
||||
|
||||
|
||||
class JobRepository(RepositoryBase):
|
||||
def __init__(self, db):
|
||||
super(JobRepository, self).__init__(db, __file__)
|
||||
|
||||
def add(self, job: JobMetric):
|
||||
db_request = self._build_db_request(
|
||||
sql_file_name='add_job_metric.sql',
|
||||
args=asdict(job)
|
||||
)
|
||||
db_result = self.cursor.insert_returning(db_request)
|
||||
|
||||
return db_result.id
|
|
@ -0,0 +1,13 @@
|
|||
INSERT INTO
|
||||
metrics.job
|
||||
VALUES (
|
||||
DEFAULT,
|
||||
%(job_name)s,
|
||||
%(batch_date)s,
|
||||
%(start_ts)s,
|
||||
%(end_ts)s,
|
||||
%(command)s,
|
||||
%(success)s
|
||||
)
|
||||
RETURNING
|
||||
id
|
Loading…
Reference in New Issue