一个简易的日程管理服务。
- 便捷地管理自己的日程
- 支持定时 Email 提醒
项目支持 Docker-Compose 快速部署,准备工作:
- 安装 Docker 与Docker-Compose;
- 配置文件会通过挂载卷的方式挂载到Docker容器,请注意补充
.env
(see.env.temp
) 与conf/conf_release.yaml
配置;
通过 Docker-Compose 运行:
docker-compose up -d
项目采用手动实现的轻量级定时任务调度器 crontab,底层基于 go/time 和 tidwall/btree 实现,在易用性和性能上都表现良好; 相比于 RabbitMQ 的定时消息,该调度器支持直接删除 Waiting 中的任务,并将资源让出给其它任务。
通过定时任务定期拉取接下来一段时间区间的定时消息,并提交到定时任务调度器中调度执行; 到达定时消息的推送时间时,调度器会执行处理该消息的回调函数,该函数会将该消息推送到 MQ,并交给消费者统一发送邮件,消费端通过重试策略增加服务的可靠性。
- 基于 Github Action 完成 Golang Lint、Docker 镜像构建
- 支持 Docker-Compose 一键编排部署