chinese-calendar
chinese-calendar copied to clipboard
有什么热更新的方式吗?
在国务院发布假期更新的时候要重装吗?
唔,热更新的方式倒是没有。
不过这个提的倒是很好,我感觉可以提供一个 .json
文件,然后在必要的时候通过网络请求加载一次。
我回头实现一下。
那就需要服务器提供接口,可以有一个版本,然后本地设定特定时间版本check,不一致就更新
emmm,所以这个实现了吗。
思路: 一、使用此包做更新 step1.程序内,使用命令行更新 import os os.system("pip install --upgrade chinesecalendar")
step2.设置定时任务即可,每天跑一次,应对反法西斯70周年那种突然放假的可能😳
二、爬虫监控国务院网站,出现”假日安排“关键字,钉钉@开发者,及时向此项目提交PR或者手动生成数据😃 http://www.gov.cn/zhengce/zuixin.htm
保证假期服务及时可靠~
@luzihang123 Good Solution.
针对已启动的服务:
check_update_calendar.py
import requests
import chinese_calendar
def get_verisons(package_name):
url = "https://pypi.python.org/pypi/%s/json" % package_name
versions, success, count = [], False, 0
while not success and count < 3:
try:
data = requests.get(url).json()
versions = sorted(data["releases"].keys(), reverse=True)
success = True
except:
count += 1
return versions
if __name__ == '__main__':
update = False
versions = get_verisons('chinesecalendar')
if versions and hasattr(chinese_calendar, '__version__'):
if versions[0] != chinese_calendar.__version__:
print('has_update')
else:
print('no_update')
else:
print('no_update')
check_update_calendar.sh
# activate your env
echo "------------Check Chinese Calendar Package Version------------"
result=`python check_update_calendar.py`
echo $result
if [ $result == "has_update" ]; then
echo 'Update chinesecalendar'
pip install --upgrade chinesecalendar
# restart your service
fi
定时任务如crontab,加入 bash check_update_calendar.sh
建议作者 @LKI 下个版本加入 __version__
常量,不然每次要手动加了:smile:
更新之后解决不了动态依赖, 需要自己重启项目~各位注意呀
更新之后解决不了动态依赖, 需要自己重启项目~各位注意呀
设计配置中心,从api或者redis拉取节假日数据,api或者redis的数据,你可以通过上述检查更新的方式更新
不过这个提的倒是很好,我感觉可以提供一个
.json
文件,然后在必要的时候通过网络请求加载一次。
二、爬虫监控国务院网站,出现”假日安排“关键字,钉钉@开发者,及时向此项目提交PR或者手动生成数据😃
基于爬虫的数据可以用我的 holiday-cn
不过这个提的倒是很好,我感觉可以提供一个
.json
文件,然后在必要的时候通过网络请求加载一次。二、爬虫监控国务院网站,出现”假日安排“关键字,钉钉@开发者,及时向此项目提交PR或者手动生成数据😃
基于爬虫的数据可以用我的 holiday-cn
就怕公告文本格式不统一,解析繁杂且出错