KZi*_*vas 6 python timezone pytz apscheduler
我正在尝试使用 asyncioscheduler 计划作业运行 python 异步应用程序,但 APScheduler 在构建过程中由于以下错误而失败:
“仅支持 pytz 库中的时区”错误
我确实在我的应用程序中包含 pytz 并且我正在传递时区。是什么导致了错误?
我在创建作业管理器的类中调用 asyncioscheduler:
from apscheduler.schedulers.asyncio import AsyncIOScheduler
class ScheduleManager:
def __init__(self) -> None:
self.scheduler = AsyncIOScheduler()
def start(self):
self.scheduler.start()
def stop(self):
self.scheduler.shutdown()
def add_seconds_interval_job(self, callback, interval : int):
self.scheduler.add_job(callback, 'interval', seconds = interval)
def add_minutes_interval_job(self, callback, interval : int):
self.scheduler.add_job(callback, 'interval', minutes = interval)
def add_hours_interval_job(self, callback, interval : int):
self.scheduler.add_job(callback, 'interval', hours = interval)
def add_days_interval_job(self, callback, interval : int):
self.scheduler.add_job(callback, 'interval', days = interval)
Run Code Online (Sandbox Code Playgroud)
然后我从我的应用程序中调用该经理,如下所示:
from jobs import ScheduleManager, ConfigJob
class AppInitializer:
def __init__(self) -> None:
self.schedule_manager = ScheduleManager()
self.config__job = ConfigJob()
async def initialize(self, app, loop):
self.schedule_manager.add_seconds_interval_job(self.config_job.run, 5)
self.schedule_manager.start()
Run Code Online (Sandbox Code Playgroud)
tzlocal 库在 3.0 中从 pytz 切换到 zoneinfo 时区,而 APScheduler 3.x 与这些时区不兼容。因此,APScheduler 3.7.0 将 tzlocal 固定到 v2.x。如果您通过 APScheduler 安装 tzlocal 3.0,则您使用的是旧版本。请升级。