Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions runtime/datamate-python/app/module/shared/schedule/scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,26 @@
from apscheduler.triggers.cron import CronTrigger

from app.core.logging import get_logger
import pytz

logger = get_logger(__name__)


class Scheduler:
def __init__(self, name: str = "scheduler") -> None:
def __init__(self, name: str = "scheduler", timezone: Optional[str] = None) -> None:
self._name = name
self._scheduler: Optional[AsyncIOScheduler] = None
# 使用指定的时区,如果没有指定则使用本地时区
self._timezone = pytz.timezone(timezone) if timezone else None

def start(self) -> AsyncIOScheduler:
if self._scheduler is None:
self._scheduler = AsyncIOScheduler()
# 配置调度器使用本地时区
from tzlocal import get_localzone
local_tz = get_localzone()
self._scheduler = AsyncIOScheduler(timezone=local_tz)
self._scheduler.start()
logger.info(f"{self._name} started")
logger.info(f"{self._name} started with timezone: {local_tz}")
return self._scheduler

def shutdown(self) -> None:
Expand All @@ -38,7 +44,8 @@ def add_cron_job(
**job_kwargs: Any,
) -> None:
scheduler = self._get_scheduler()
trigger = CronTrigger.from_crontab(cron_expression)
# 使用调度器的时区创建 CronTrigger
trigger = CronTrigger.from_crontab(cron_expression, timezone=scheduler.timezone)
scheduler.add_job(
func,
trigger=trigger,
Expand Down
8 changes: 4 additions & 4 deletions runtime/datamate-python/poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions runtime/datamate-python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ dependencies = [
"lightrag-hku (==1.4.9.8)",
"pytest (>=9.0.2,<10.0.0)",
"apscheduler (>=3.11.2,<4.0.0)",
"tzlocal (>=5.2,<6.0)",
]


Expand Down
Loading