python flask 启动时抛出时区异常处理

python3 flask框架的web系统启动时,APScheduler 抛出以下异常

Traceback (most recent call last):
  File "/opt/autocheck/run.py", line 2, in <module>
    from ops import app
  File "/opt/autocheck/ops/__init__.py", line 19, in <module>
    scheduler = schedulerJob()
  File "/opt/autocheck/ops/task/tasksList.py", line 41, in schedulerJob
    scheduler = BackgroundScheduler()
  File "/usr/local/lib/python3.10/site-packages/apscheduler/schedulers/base.py", line 87, in __init__
    self.configure(gconfig, **options)
  File "/usr/local/lib/python3.10/site-packages/apscheduler/schedulers/base.py", line 131, in configure
    self._configure(config)
  File "/usr/local/lib/python3.10/site-packages/apscheduler/schedulers/background.py", line 29, in _configure
    super(BackgroundScheduler, self)._configure(config)
  File "/usr/local/lib/python3.10/site-packages/apscheduler/schedulers/base.py", line 701, in _configure
    self.timezone = astimezone(config.pop('timezone', None)) or get_localzone()
  File "/usr/local/lib/python3.10/site-packages/tzlocal/unix.py", line 203, in get_localzone
    _cache_tz = _get_localzone()
  File "/usr/local/lib/python3.10/site-packages/tzlocal/unix.py", line 185, in _get_localzone
    utils.assert_tz_offset(tz)
  File "/usr/local/lib/python3.10/site-packages/tzlocal/utils.py", line 63, in assert_tz_offset
    raise ValueError(msg)
ValueError: Timezone offset does not match system offset: 0 != 28800. Please, check your config files.

通过分析异常日志,发现APScheduler的默认timezone,而“0”是获取的系统环境变量的TZ时间28800对应timezone为“Asia/Shanghai”, 而0对应timezone为“UTC”,所以我们只需将系统环境变量的时区与APScheduler的时区设置为一致即可

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Copyright: (c) HUWJ Organization. https://huwen.blog.csdn.net
# Copyright: (c) <huwj@sunsharing.com.cn>
# Released under the AGPL-3.0 License.

from apscheduler.schedulers.background import BackgroundScheduler    
import os

os.environ['TZ']= "Asia/Shanghai"
scheduler = BackgroundScheduler(timezone="Asia/Shanghai")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hu_wenjie

您的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值