用Trae写自动签到脚本,部署Serverless定时任务全复盘

Serverless定时任务自动签到 本内容遵循CC 4.0 BY-SA版权协议
第三世界的妖孽 第三世界的妖孽 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要

出差一周回来,打开Trae发现每天签到断了三天,月底的兑换码活动恰好错过。那一刻我意识到,靠人肉去守一个每天固定时间刷新的活动,迟早还会再漏。于是就有了这个项目:用Trae写一个自动签到脚本,部署成Serverless定时任务,让它每天早上自己去签到,再把结果推到我手机上。

这篇不是“照着敲就能跑”的教程,而是这个项目从方案选型、脚本编码、Serverless部署,到线上踩坑的完整复盘。我会讲清楚每个选择背后的理由,并把核心代码、部署配置、以及运行几个月后的稳定性数据摊开。如果你也有每日签到、定时巡检、定时推送这类需求,正在纠结用什么方案,或者已经在用Serverless但总被定时触发器坑到,这篇应该能帮你省不少时间。

1. 方案选型:为什么最终落在 Serverless 定时任务上

1.1 摆在我面前的三条路

要做每天早上自动签到,候选方案其实很明确:云主机上的cron、GitHub Actions的schedule、以及Serverless平台的定时触发器。我把它们在表格里拉了一遍。

对比维度 云主机/cron GitHub Actions schedule Serverless定时触发器
部署成本 需要一台24小时在线的机器 免费额度,配好yml就好 基本零成本,按调用计费
维护负担 系统更新、宕机、网络波动都得自己管 无需维护,但仓库和密钥要管理 平台托管,不用管系统和网络
定时精度 分钟级 分钟到几十分钟,官方说明“可能延迟” 秒级/分钟级,稳定
失败重试 自己写逻辑 平台有限重试 触发后要自己实现重试
国内接口访问 取决于本地网络质量 国内访问经常抽风 可选国内region,延迟低

先说GitHub Actions为什么被我否掉。schedule事件本质上是“尽量执行”的,仓库如果长时间没有其他活动,任务被排队、被跳过的情况很常见。而且它的runner在海外,访问国内接口的稳定性真的看运气。我还特意把签到用的token放到了仓库Secrets里,虽然方便,但每次任务都在公共网络环境里执行,心里总觉得不踏实。

云主机这条路上,我家里确实有台小主机,但让它24小时挂着跑就是为了每天早上一个请求,先不说电费和带宽,光是出门在外家里断电断网一次,这个方案就废了。更别说还得维护系统、处理家里网络环境的端口和防火墙问题,投入产出比太低了。

1.2 为什么没碰 xxl-job、Spring Boot 这类企业级方案

做技术选型时很容易进入一个误区:看到什么热就用什么。搜索里提到xxl-job、SpringBoot定时任务、SpringCloud分布式定时任务,这些我都想过,但最后还是放弃了。

xxl-job这类中心化调度平台,适合企业中几十上百个定时任务需要统一管理、分片执行、可视化运维的场景。它本身需要部署调度中心、依赖数据库、还要维护执行器。我一个人一个签到脚本,引入它意味着要先维护一套基础设施,然后再为自己的简单需求写一堆配置,把简单的事情彻底做重了。

Spring Boot + @Scheduled 也一样。如果只是为了跑一个脚本,就得维护一个Java应用的构建、打包、部署链路,还要保证某个环境长期在线运行。对个人小任务来说,这等于“为了喝牛奶养了一头牛”。

Serverless为什么合适?因为它的模型是“你只提供一个函数,平台负责在触发时拉起它”。平时不存在、不占资源、不产生费用,到了时间点被唤醒,跑完就消失。用来承载每天一次的轻量签到任务,从资源消耗的角度来说几乎等于零。

1.3 选型结论与成本账

最终我选了阿里云函数计算FC,Python 3.9 runtime,region放在杭州,配置一个每天触发的定时触发器。

理由有三条:

  • 访问国内接口延迟低,不用绕路海外。
  • 支持定时触发器,原生就能配置cron表达式,不需要额外搭调度服务。
  • 免费额度对这种每天调用一次的任务来说完全够用,就算哪个配置错了也不至于产生明显账单。

成本账大概算一下:一个月触发30次,每次执行时间几秒,内存128MB,这个量级放在任何云厂商的免费额度里都是毛毛雨。相比自己养一台机器,省下的电费和精力都是实打实的。

2. 用 Trae 写签到脚本:从抓包到能跑通的核心代码

2.1 先想清楚接口调用链路再动手

签到本质就是一个HTTP请求:带着登录凭证去请求签到接口,后端返回是否成功。关键是要把下面几件事搞清楚,否则代码写出来也是空中楼阁。

  • 请求方法、URL、headers、请求体格式。
  • 登录态的承载方式:Cookie还是Bearer Token。
  • 成功返回的结构:怎么判断“签到成功”“重复签到”“接口异常”。
  • 同样的请求如果被重复触发,会不会出问题(幂等性)。

我是用浏览器开发者工具抓包,找出签到请求的完整信息,然后把请求信息丢给Trae,让它帮我把requests代码骨架写出来。这种模式比手写快很多,特别是headers里一堆字段顺序、Cookie字段名容易眼花,让代码编辑器先出一版,再手工校对,效率高不少。

2.2 脚本骨架与核心代码

我最终的入口函数按FC的Python runtime规范写成handler形式,整体逻辑非常直白:读取环境变

最低 0.47元/天 开通会员,解锁全文
left
成为会员后, 你将解锁
right
benefits 下载资源随意下
benefits 优质VIP博文免费学
benefits 优质文库回答免费看
benefits 付费资源9折优惠

相关推荐

基于Python+Open CV的手势识别算法设计

伴随着人工智能时代的到来,人机交互的领域也逐渐成为研究的一大方向;其中,手势识别是人机交互领域的一项关键技术,自此手势识别也迎来了一波高潮,近几年无论是在消费领域、电子领域、数码领域、家电领域甚至汽车领域上,都能或多或少的见到手势识别的身影。 手势识别在设计智能高效的人机界面方面具有至关重要的作用, 目前手势识别已应用到手语识别、智能监控、到虚拟现实等各个领域,手势识别的原理都是利用各种传感器(例如红外、摄像头等)对手部的形态进行捕捉并进行建模,形成一个模型信息的序列帧,而后将这些信息序列转换为机器能够识别的相对应指令(例如打开、切换菜单、移动等)来完成控制。 采用Python的集成开发环境Pycharm进行本次课程设计,在Pycharm中进行需要库(模块)的下载,调取电脑摄像头,按帧读取摄像头采集到的头像,形态学处理,图像旋转(由于摄像头采集到的图像是镜像,需要用cv2.flip将摄像头采集到的图像进行处理),选取图片中固定位置作为手势输入,用红线画出手势识别框,基于hsv的肤色检测,进行高斯滤波,找出轮廓,求出图像中手势的凹凸点,手指间角度求取。

努力学习前端的小陈

ROS-CV-ImageConverter:将ROS图像转换为OpenCV(cv :: Mat)类型的图像

ROS-CV图像转换器 依存关系 cv_bridge(ROS软件包)

Willis Wang

计算机视觉图像处理-CV2与图像插值算法

用最近邻插值与双线性插值原理完成图像缩放 最近邻插值,是指将目标图像中的点,对应到源图像中后,找到最相邻的整数点,作为插值后的输。缺点:使用最近邻插值算法处理图像放大时,在图象中可能出现明显的块状效应 双线性插值,在两个方向上做三次线性插值。使用双线性插值算法处理图像放大时,在图象中可能出现马赛克 代码 import cv2 img = cv2.imread(’./xiabang.jpg’, cv2.IMREAD_UNCHANGED) #缩放比例 scale_percent = 0.3 width = int(img.shape[1] * scale_percent) height = int

weixin_38697274

基于水平集CV模型的图像分割(Matlab代码)

基于水平集CV模型的图像分割(Matlab代码),全套代码

小宇QAQ

导向滤波(guide_filter)的python实现

导向滤波(guide_filter)的python实现,可以结合暗通道;理论实现比较好的图像去噪效果。

zachzhan_g
返回顶部
第三世界的妖孽
博客等级 码龄8年 34粉丝 8,352原创