from __future__ import annotations import logging from typing import Any from app.jobs.base import BaseJob from extensions.example.client import ExampleClient logger = logging.getLogger("connecthub.extensions.example") class ExampleJob(BaseJob): job_id = "example.hello" def run(self, params: dict[str, Any], secrets: dict[str, Any]) -> dict[str, Any]: # params: 明文配置,例如 {"name": "Mars"} name = params.get("name", "World") # secrets: 解密后的明文,例如 {"token": "..."} token = secrets.get("token", "") client = ExampleClient(base_url="https://baidu.com", headers={"Authorization": f"Bearer {token}"}) try: pong = client.ping() finally: client.close() logger.info("ExampleJob ran name=%s pong=%s", name, pong) return {"hello": name, "pong": pong}