Add new hourly reset traffic (#3966)

* Add new hourly reset traffic

* fix
This commit is contained in:
Andrew Smirnov 2026-04-19 22:37:34 +03:00 committed by GitHub
parent 7466916e02
commit e986a133f8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 28 additions and 1 deletions

View file

@ -73,6 +73,8 @@
:dropdown-class-name="themeSwitcher.currentTheme">
<a-select-option value="never">{{ i18n
"pages.inbounds.periodicTrafficReset.never" }}</a-select-option>
<a-select-option value="hourly">{{ i18n
"pages.inbounds.periodicTrafficReset.hourly" }}</a-select-option>
<a-select-option value="daily">{{ i18n
"pages.inbounds.periodicTrafficReset.daily" }}</a-select-option>
<a-select-option value="weekly">{{ i18n

View file

@ -37,7 +37,7 @@ func (j *PeriodicTrafficResetJob) Run() {
resetCount := 0
for _, inbound := range inbounds {
resetInboundErr := j.inboundService.ResetAllTraffics()
resetInboundErr := j.inboundService.ResetInboundTraffic(inbound.Id)
if resetInboundErr != nil {
logger.Warning("Failed to reset traffic for inbound", inbound.Id, ":", resetInboundErr)
}

View file

@ -1891,6 +1891,16 @@ func (s *InboundService) ResetAllTraffics() error {
return err
}
func (s *InboundService) ResetInboundTraffic(id int) error {
db := database.GetDB()
result := db.Model(model.Inbound{}).
Where("id = ?", id).
Updates(map[string]any{"up": 0, "down": 0})
return result.Error
}
func (s *InboundService) DelDepletedClients(id int) (err error) {
db := database.GetDB()
tx := db.Begin()

View file

@ -312,6 +312,7 @@
"daily" = "يومياً"
"weekly" = "أسبوعياً"
"monthly" = "شهرياً"
"hourly" = "كل ساعة"
[pages.inbounds.toasts]
"obtain" = "تم الحصول عليه"

View file

@ -312,6 +312,7 @@
"daily" = "Daily"
"weekly" = "Weekly"
"monthly" = "Monthly"
"hourly" = "Hourly"
[pages.inbounds.toasts]
"obtain" = "Obtain"

View file

@ -312,6 +312,7 @@
"daily" = "Diariamente"
"weekly" = "Semanalmente"
"monthly" = "Mensualmente"
"hourly" = "Cada hora"
[pages.inbounds.toasts]
"obtain" = "Recibir"

View file

@ -312,6 +312,7 @@
"daily" = "روزانه"
"weekly" = "هفتگی"
"monthly" = "ماهانه"
"hourly" = "هر ساعت"
[pages.inbounds.toasts]
"obtain" = "فراهم‌سازی"

View file

@ -312,6 +312,7 @@
"daily" = "Harian"
"weekly" = "Mingguan"
"monthly" = "Bulanan"
"hourly" = "Setiap jam"
[pages.inbounds.toasts]
"obtain" = "Dapatkan"

View file

@ -312,6 +312,7 @@
"daily" = "毎日"
"weekly" = "毎週"
"monthly" = "毎月"
"hourly" = "毎時"
[pages.inbounds.toasts]
"obtain" = "取得"

View file

@ -312,6 +312,7 @@
"daily" = "Diariamente"
"weekly" = "Semanalmente"
"monthly" = "Mensalmente"
"hourly" = "A cada hora"
[pages.inbounds.toasts]
"obtain" = "Obter"

View file

@ -312,6 +312,7 @@
"daily" = "Ежедневно"
"weekly" = "Еженедельно"
"monthly" = "Ежемесячно"
"hourly" = "Ежечасно"
[pages.inbounds.toasts]
"obtain" = "Получить"

View file

@ -312,6 +312,7 @@
"daily" = "Günlük"
"weekly" = "Haftalık"
"monthly" = "Aylık"
"hourly" = "Saatlik"
[pages.inbounds.toasts]
"obtain" = "Elde Et"

View file

@ -312,6 +312,7 @@
"daily" = "Щодня"
"weekly" = "Щотижня"
"monthly" = "Щомісяця"
"hourly" = "Щогодини"
[pages.inbounds.toasts]
"obtain" = "Отримати"

View file

@ -312,6 +312,7 @@
"daily" = "Hàng ngày"
"weekly" = "Hàng tuần"
"monthly" = "Hàng tháng"
"hourly" = "Hàng giờ"
[pages.inbounds.toasts]
"obtain" = "Nhận"

View file

@ -312,6 +312,7 @@
"daily" = "每日"
"weekly" = "每周"
"monthly" = "每月"
"hourly" = "每小时"
[pages.inbounds.toasts]
"obtain" = "获取"

View file

@ -312,6 +312,7 @@
"daily" = "每日"
"weekly" = "每週"
"monthly" = "每月"
"hourly" = "每小時"
[pages.inbounds.toasts]
"obtain" = "獲取"

View file

@ -327,6 +327,8 @@ func (s *Server) startTask() {
s.cron.AddJob("@daily", job.NewClearLogsJob())
// Inbound traffic reset jobs
// Run every hour
s.cron.AddJob("@hourly", job.NewPeriodicTrafficResetJob("hourly"))
// Run once a day, midnight
s.cron.AddJob("@daily", job.NewPeriodicTrafficResetJob("daily"))
// Run once a week, midnight between Sat/Sun