← 返回 TimeAmber set 限制解除
Featured image of post MJJ提醒工具——不再错过关键抢购

MJJ 提醒工具 —— 不再错过关键抢购

前言

相信很多 MJJ 和我一样,因为平时没时间关注鸡圈,导致经常错过一些关键的时间节点,比如传家宝的续费,黑五抢购,一些限时的优惠,因此,我开发了这一款 MJJ提醒工具,无需服务器,还是薅我们的赛博活佛 ——cloudflare 的羊毛,为了避免网站沉寂不工作,我们使用监控工具 cron-job.org Console 进行定时触发。网站 demo

灵感来自 woniu336 大佬 的已有项目 MJJ 订阅追踪,但是大佬的项目提醒和部署在服务器上不适合我,所以自建了一个

正文

下面就开始搭建吧

项目地址

准备工具

  • Cloudflare 账号
  • Cloudflare Pages
  • Cloudflare D1 数据库
  • Telegram Bot Token 和 Chat ID
  • 企业微信 Webhook 地址

数据库

在 Cloudflare Workers 中创建 D1 数据库

然后在控制台执行查询命令

CREATE TABLE reminders (
    id TEXT PRIMARY KEY,
    title TEXT NOT NULL,
    content TEXT NOT NULL,
    remind_time TEXT NOT NULL,
    cycle_type TEXT NOT NULL,
    status INTEGER DEFAULT 0,
    link TEXT,
    cron_job_id INTEGER
);

image-20241219002247691

部署步骤

注册并且获取 cron-job.org Consoleapi key 只能创建一个,但是可以随时修改

image-20241219002303876

  1. 在 Cloudflare Pages 中创建新项目
  2. 连接您的 Git 仓库(GitHub、GitLab 等)
  3. fork 项目,1143520/deadline 或者下载源码,git 上传
  4. 在 Pages 项目设置中:
    • 绑定 D1 数据库,设置变量为 DB
    • 配置环境变量(见环境变量配置部分)
  • CRON_SECRET: 定时任务的访问密钥(按照个人喜好设置)
  • CRONJOB_API_KEY: cron-job.org 的 API KEY
  • TG_BOT_TOKEN: Telegram Bot Token(推送到 tg 机器人)(这个应该都会吧)
  • TG_CHAT_ID: Telegram Chat ID
  • WECOM_KEY: 企业微信 Webhook 地址(完整的 url,推送到微信企业机器人,可选)(这个也可以网上找教程)

使用

网站界面

image-20241219002326450

添加任务

注意,提醒时间不能在 3min 之内,否则会跳过第一次提醒

可选:

- 单次提醒:只提醒一次

- 每周循环:在指定的每周某一天重复提醒

- 每月循环:在每月的指定日期重复提醒

- 每年循环:在每年的指定日期重复提醒

【如果你还不满意,可以到 cron-job.org Console 自行编辑,除了单次任务会自动删除,其他的可以循环触发】

image-20241219002345201

image-20241219002404001

注意单次任务执行完成之后会自动删除任务,下面以周循环为例

点击任务的编辑可以看到下一次执行时间,实际上是循环的,只显示最近 5 个

image-20241219002418203

提醒消息样式

image-20241219002431672

image-20241219002440635

总结

使用 pages 构建,js 后端处理,引入外部定时任务 cron-job.org Console 定时触发任务,避免轮询造成免费额度的浪费,和保持提醒的可靠性,请勿泄露 API KEY!

使用 cron-job.org 的免费计划有以下限制:

- 最多创建 50 个定时任务
- 最短执行间隔为 1 分钟
- 每个任务的超时时间为 30 秒
- 每月可执行 10,000 次
- 每个任务最多可以设置 100 个不同的执行时间点

欢迎点赞给鸡腿哦😚

CC BY-NC-SA 4.0 创意的非商业派对入场券
最后更新于 2024-12-19 00:40
晚来天欲雪,能饮一杯无