Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
hexbee
Cloudreve
提交
09de0554
C
Cloudreve
项目概览
hexbee
/
Cloudreve
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Cloudreve
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
09de0554
编写于
3月 11, 2020
作者:
H
HFO4
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Modify: clean crontab
上级
4ba24e0c
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
0 addition
and
88 deletion
+0
-88
pkg/crontab/init.go
pkg/crontab/init.go
+0
-5
pkg/crontab/vas.go
pkg/crontab/vas.go
+0
-83
未找到文件。
pkg/crontab/init.go
浏览文件 @
09de0554
...
...
@@ -28,10 +28,6 @@ func Init() {
switch
k
{
case
"cron_garbage_collect"
:
handler
=
garbageCollect
case
"cron_notify_user"
:
handler
=
notifyExpiredVAS
case
"cron_ban_user"
:
handler
=
banOverusedUser
default
:
util
.
Log
()
.
Warning
(
"未知定时任务类型 [%s],跳过"
,
k
)
continue
...
...
@@ -42,6 +38,5 @@ func Init() {
}
}
banOverusedUser
()
Cron
.
Start
()
}
pkg/crontab/vas.go
已删除
100644 → 0
浏览文件 @
4ba24e0c
package
crontab
import
(
model
"github.com/HFO4/cloudreve/models"
"github.com/HFO4/cloudreve/pkg/email"
"github.com/HFO4/cloudreve/pkg/util"
)
func
notifyExpiredVAS
()
{
checkStoragePack
()
checkUserGroup
()
util
.
Log
()
.
Info
(
"定时任务 [cron_notify_user] 执行完毕"
)
}
// banOverusedUser 封禁超出宽容期的用户
func
banOverusedUser
()
{
users
:=
model
.
GetTolerantExpiredUser
()
for
_
,
user
:=
range
users
{
// 清除最后通知日期标记
user
.
ClearNotified
()
// 检查容量是否超额
if
user
.
Storage
>
user
.
Group
.
MaxStorage
+
user
.
GetAvailablePackSize
()
{
// 封禁用户
user
.
SetStatus
(
model
.
OveruseBaned
)
}
}
}
// checkUserGroup 检查已过期用户组
func
checkUserGroup
()
{
users
:=
model
.
GetGroupExpiredUsers
()
for
_
,
user
:=
range
users
{
// 将用户回退到初始用户组
user
.
GroupFallback
()
// 重新加载用户
user
,
_
=
model
.
GetUserByID
(
user
.
ID
)
// 检查容量是否超额
if
user
.
Storage
>
user
.
Group
.
MaxStorage
+
user
.
GetAvailablePackSize
()
{
// 如果超额,则通知用户
sendNotification
(
&
user
,
"用户组过期"
)
// 更新最后通知日期
user
.
Notified
()
}
}
}
// checkStoragePack 检查已过期的容量包
func
checkStoragePack
()
{
packs
:=
model
.
GetExpiredStoragePack
()
for
_
,
pack
:=
range
packs
{
// 删除过期的容量包
pack
.
Delete
()
//找到所属用户
user
,
err
:=
model
.
GetUserByID
(
pack
.
UserID
)
if
err
!=
nil
{
util
.
Log
()
.
Warning
(
"[定时任务] 无法获取用户 [UID=%d] 信息, %s"
,
pack
.
UserID
,
err
)
continue
}
// 检查容量是否超额
if
user
.
Storage
>
user
.
Group
.
MaxStorage
+
user
.
GetAvailablePackSize
()
{
// 如果超额,则通知用户
sendNotification
(
&
user
,
"容量包过期"
)
// 更新最后通知日期
user
.
Notified
()
}
}
}
func
sendNotification
(
user
*
model
.
User
,
reason
string
)
{
title
,
body
:=
email
.
NewOveruseNotification
(
user
.
Nick
,
reason
)
if
err
:=
email
.
Send
(
user
.
Email
,
title
,
body
);
err
!=
nil
{
util
.
Log
()
.
Warning
(
"无法发送通知邮件, %s"
,
err
)
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录