implement job runner and scheduler
This commit is contained in:
parent
328a70ff9b
commit
2b2a3f1cc0
11 changed files with 1572 additions and 284 deletions
|
|
@ -295,6 +295,16 @@ def update_source(
|
|||
return source
|
||||
|
||||
|
||||
def delete_job_source(job_id: int) -> bool:
|
||||
with database.connection_context():
|
||||
with database.atomic():
|
||||
job = Job.get_or_none(id=job_id)
|
||||
if job is None:
|
||||
return False
|
||||
source = Source.get_by_id(job.source_id)
|
||||
return source.delete_instance() > 0
|
||||
|
||||
|
||||
def load_sources() -> tuple[dict[str, object], ...]:
|
||||
with database.connection_context():
|
||||
sources = tuple(Source.select().order_by(Source.created_at.desc()))
|
||||
|
|
@ -416,6 +426,7 @@ class JobExecution(BaseModel):
|
|||
created_at = DateTimeField(default=utc_now)
|
||||
started_at = DateTimeField(null=True)
|
||||
ended_at = DateTimeField(null=True)
|
||||
stop_requested_at = DateTimeField(null=True)
|
||||
running_status = IntegerField(
|
||||
default=JobExecutionStatus.PENDING,
|
||||
constraints=[Check("running_status BETWEEN 0 AND 4")],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue