| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Github Actions 执行Python定时任务(时区及缓存问题处理) -> 正文阅读 |
|
[开发工具]Github Actions 执行Python定时任务(时区及缓存问题处理) |
Github Actions这两天一直在学习Github Actions,很是兴奋,才发现这么好的东西,相见恨晚。 它是什么呢,简单讲,就是让你的Github项目具备持续集成的能力,类似于传统工具jenkins,Gitlab的CI/CD功能等,但Github Actions更加强大。 我尝试简单实践了一下,将前几天写的python包加了一下这个功能,用起来很简单,只要在代码里,创建一个
上面是我给pywencai配置的,具体的功能为:在一个tag推送到仓库时,自动执行发布pypi和发布 github release的功能,相当方便。 定时任务除了执行一些测试或发布的任务,Github Actions 还可以执行定时任务,而且是免费的(虽然有一定配额限制),这不得赶紧白嫖一下。 核心的能力在于触发工作流里的事件,具备
上边是我最终的配置,下面着重解释两个问题:时区 和 缓存策略 时区schedule时区Github是国际网站,默认时区肯定不是中国时区,而是UTC时间(协调世界时间),大概是冰岛和英国的时区。
最终的结论就是,比北京时间慢8小时,用目标时间减8就可以了。 注意,对于
schedule延迟问题我尝试跑了一天的schedule,发现执行任务的时间,跟我设置的时间有差别,少则几十分钟,多则几个小时,相当不准时(官方文档也明确写了,就是不准时,无奈)。所以,如果需要精准时间的定时任务无法用它来执行。 虚拟环境的时区虽然,我们无法更改
缓存策略由于想要执行的是定时任务,所以其实不希望每次执行都重新安装依赖,除非有依赖更新再重新安装。这个问题Github Actions也已经替我们想到了,具体参看官方文档。
总结一下,就是可以通过配置,将指定目录的文件缓存下来,并记录一个key与其对应。如果下次执行,提供的还是这个key,那么就启用这个缓存,如果不是,就不适用缓存,重新安装依赖。 目前的大部分语言的包管理器(至少node.js和python),都具备lock文件。所以,就可以根据lock文件的哈希值,创建缓存的key,如果哈希值不变,就说明依赖没变,使用缓存,如果变了,就重新安装。 就以上这个过程,其实也不需要我们一步一步做,以python程序为例,官方已经为我们提供了
其他语言也有,每种语言都有自己的缓存策略配置,参见上文使用缓存文档连接。 结语Github Actions的玩法很丰富,应该混Github社区必备技能之一,值得深度学习和使用。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 3:48:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |