之前写了一个程序,可以帮助上报健康数据到智慧山水。
但是一直是需要自己电脑或者服务器的支持,自己的电脑需要长期开机,或者花钱购买云服务器。
现在终于可以摆脱束缚,仅需一次配置,配置完成后无需电脑或服务器,每日云端自动提交,零成本、无电费。
以下方式可实现定时提交程序。
云端自动提交
使用腾讯云函数
腾讯云函数介绍
什么是腾讯云函数?
官方介绍:
腾讯云云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码, 是实时文件处理和数据处理等场景下理想的计算平台。 您只需使用 SCF 平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。
简单来说就是可以自动定时运行代码的服务器,你无需担心服务器是否正常、是否被攻击,只需要关心代码即可。
免费额度
资源类型 | 每月免费额度 |
---|---|
资源使用量 | 40 万 GBs |
调用次数 | 100 万次 |
已经够使用了。
使用方式
准备代码
下载运行环境依赖
由于代码引入了python的lxml库,但是腾讯云函数提供的环境中又没有此依赖,所以需要手动上传。
依赖下载地址:https://wwa.lanzous.com/ivuSHeukg2h
下载到一个压缩包。
打开之后结构如图所示:
将程序运行所必须的文件放入此压缩包
程序仓库:https://github.com/imldy/health-data-post(里面有代码及使用说明)
配置文件使用说明:https://github.com/imldy/health-data-post/blob/master/students_data_explain.md
必须的文件列表:
- HealthDataPost.py(代码)
- students_data.json(配置文件)
我用的解压缩软件是Bandizip,可以直接拖拽文件到压缩包。
点击“确定”
如果你的软件不支持拖拽文件到压缩包,你可以先解压依赖文件,然后和软件运行所必须的文件压缩到同一个压缩包内,是.zip格式即可。
如图所示,是准备好的压缩文件,里面包含依赖,也包含程序运行所必须的文件。
注册、登录腾讯云
链接:https://cloud.tencent.com/product/scf
打开上方链接,点击右上角登录,可以使用邮箱、QQ等,直接登录即可,很简单,不再赘述。
使用腾讯云函数
点击页面左边的“立即使用”进入控制台。
可以看到你已经拥有的函数的情况,初次使用为空正常。
点击左边的“函数服务”,可以看到已有的函数服务。
地区使用大陆地区(除非你的代码需要国际互联网的支持,但是咱们的提交健康数据使用国内网络即可)。
点击“新建”
新建函数
基本信息
函数名称:自己随便输入,我这里使用的是HealthDataPost
。
运行环境:选择“Python3.6”。
创建方式:选择“空白函数”,方便我们后续添加自己的代码
单击“下一步”
函数配置
描述:填写方便自己标识各个函数的文字,例如智慧山水平台健康自动数据提交
执行方法:填写HealthDataPost.main
,这里填写的是程序的入口,即程序第一个要执行的函数。.
前面是代码文件名字,后边是方法名(这个方法名必须接收两个参数,我这里已经实现了)。
提交方式:即上传代码的方式,我们这里选择“通过本地上传zip包”
单击“上传”
选择我们之前准备好的代码的压缩文件,然后点击“打开”即可。
选择完文件之后配置高级设置。
单击“高级设置”
将超时时间设置为“20”秒,这里我们设置的宽裕一点,暂时不用这么节省,后期如果你经常使用腾讯云函数,可以根据情况来自行调整。
单击“完成”,选择的文件在此时正式被上传。
然后自动跳转到函数管理页面。
测试函数
单击“函数代码”进入代码查看和测试页面。
单击下面的“测试”按钮进行测试此函数是否正常运行。
稍等片刻,可以看到执行摘要提示“测试成功”,同时在执行日志可以看到执行过程。
注意:“测试成功”只代表程序正常运行,但是不能代表提交信息成功,提交信息是否成功还是以“本次提报成功”这几个字为准。
设置自动定时运行
单击“触发管理”-“创建触发器”
定时任务名称:随便填。
触发周期:选择“自定义触发周期”
Cron表达式:填写0 0 5,6,7 * * * *
,代表每天5点、6点、7点定时启动,如果你为了保险一点,再多几次启动也行,程序会自动判断有没有提交,如果提交了,就不会重复提交。比如你想8点也启动一次,那就在7
后边加上,8
,注意有个英文逗号。
如果你想要了解更多的Cron表达式,可以参考https://cloud.tencent.com/document/product/583/9708。
至此,算是已经成功,设置好的前1-2天,建议还是不要放松警惕,每天早上注意检查,如果1-2两天都正常提交,后边基本没问题了。