chinese-calendar icon indicating copy to clipboard operation
chinese-calendar copied to clipboard

有什么热更新的方式吗?

Open aforwardz opened this issue 5 years ago • 10 comments

在国务院发布假期更新的时候要重装吗?

aforwardz avatar Apr 30 '19 07:04 aforwardz

唔,热更新的方式倒是没有。

不过这个提的倒是很好,我感觉可以提供一个 .json 文件,然后在必要的时候通过网络请求加载一次。

我回头实现一下。

LKI avatar Apr 30 '19 08:04 LKI

那就需要服务器提供接口,可以有一个版本,然后本地设定特定时间版本check,不一致就更新

aforwardz avatar Apr 30 '19 08:04 aforwardz

emmm,所以这个实现了吗。

xojisi avatar Sep 25 '19 09:09 xojisi

思路: 一、使用此包做更新 step1.程序内,使用命令行更新 import os os.system("pip install --upgrade chinesecalendar")

step2.设置定时任务即可,每天跑一次,应对反法西斯70周年那种突然放假的可能😳

二、爬虫监控国务院网站,出现”假日安排“关键字,钉钉@开发者,及时向此项目提交PR或者手动生成数据😃 http://www.gov.cn/zhengce/zuixin.htm

保证假期服务及时可靠~

luzihang123 avatar Dec 12 '19 03:12 luzihang123

@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:

aforwardz avatar Dec 17 '19 10:12 aforwardz

更新之后解决不了动态依赖, 需要自己重启项目~各位注意呀

fhrl94 avatar Dec 18 '19 00:12 fhrl94

更新之后解决不了动态依赖, 需要自己重启项目~各位注意呀

设计配置中心,从api或者redis拉取节假日数据,api或者redis的数据,你可以通过上述检查更新的方式更新

luzihang123 avatar Dec 18 '19 01:12 luzihang123

不过这个提的倒是很好,我感觉可以提供一个 .json 文件,然后在必要的时候通过网络请求加载一次。

二、爬虫监控国务院网站,出现”假日安排“关键字,钉钉@开发者,及时向此项目提交PR或者手动生成数据😃

基于爬虫的数据可以用我的 holiday-cn

NateScarlet avatar May 22 '20 16:05 NateScarlet

不过这个提的倒是很好,我感觉可以提供一个 .json 文件,然后在必要的时候通过网络请求加载一次。

二、爬虫监控国务院网站,出现”假日安排“关键字,钉钉@开发者,及时向此项目提交PR或者手动生成数据😃

基于爬虫的数据可以用我的 holiday-cn

就怕公告文本格式不统一,解析繁杂且出错

luzihang123 avatar May 23 '20 03:05 luzihang123

国家机关的公告格式基本固定的 而且解析出错CI会报错通知我

今年春节变更就是出错然后人工修的 CI 日志

NateScarlet avatar May 23 '20 03:05 NateScarlet