0%

Python库apscheduler中时区的问题

错误描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Traceback (most recent call last):
File "Scheduler.py", line 96, in <module>
scheduler.start()
File "Scheduler.py", line 78, in start
CronTrigger.from_crontab(Config.SPIDER_INTERVAL)
File "/root/anaconda3/envs/caoliu/lib/python3.6/site-packages/apscheduler/triggers/cron/__init__.py", line 103, in from_crontab
day_of_week=values[4], timezone=timezone)
File "/root/anaconda3/envs/caoliu/lib/python3.6/site-packages/apscheduler/triggers/cron/__init__.py", line 58, in __init__
self.timezone = get_localzone()
File "/root/anaconda3/envs/caoliu/lib/python3.6/site-packages/tzlocal/unix.py", line 165, in get_localzone
_cache_tz = _get_localzone()
File "/root/anaconda3/envs/caoliu/lib/python3.6/site-packages/tzlocal/unix.py", line 90, in _get_localzone
utils.assert_tz_offset(tz)
File "/root/anaconda3/envs/caoliu/lib/python3.6/site-packages/tzlocal/utils.py", line 46, in assert_tz_offset
raise ValueError(msg)
ValueError: Timezone offset does not match system offset: 0 != 28800. Please, check your config files.

开发机上一切正常,部署到服务器上出现这个问题。

服务器的时区和apscheduler不一样。

解决方案

在 apscheuler 里指定时区

查看服务器上的时区

1
cat /etc/timezone

在 apscheuler 里指定时区

20200606173447