feat(agent): scheduler, healthcheck, and container entrypoint
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from datetime import timedelta
|
||||
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
|
||||
from agent.config import AgentConfig
|
||||
from agent.scheduler import build_scheduler
|
||||
|
||||
|
||||
def _cfg(minutes: int) -> AgentConfig:
|
||||
return AgentConfig(
|
||||
db_host="db",
|
||||
db_port=5432,
|
||||
db_user="u",
|
||||
db_password="p",
|
||||
agent_db_name="agentdb",
|
||||
firefly_url="http://app:8080",
|
||||
firefly_token="tok",
|
||||
heartbeat_interval_minutes=minutes,
|
||||
)
|
||||
|
||||
|
||||
def test_build_scheduler_registers_heartbeat_at_configured_interval():
|
||||
scheduler = build_scheduler(_cfg(minutes=15), scheduler_class=BackgroundScheduler)
|
||||
scheduler.start(paused=True)
|
||||
try:
|
||||
job = scheduler.get_job("heartbeat")
|
||||
assert job is not None
|
||||
assert job.trigger.interval == timedelta(minutes=15)
|
||||
finally:
|
||||
scheduler.shutdown(wait=False)
|
||||
Reference in New Issue
Block a user