From 9623e875113adad1fcbae7370e043db040462f2a Mon Sep 17 00:00:00 2001 From: Vadim Iskuchekov Date: Tue, 16 Sep 2025 09:24:32 +0200 Subject: =?UTF-8?q?feat:=20Simple=20periodic=20traffic=20reset=20(for=20In?= =?UTF-8?q?bounds)=20=E2=80=93=20daily=20|=20weekly=20|=20monthly=20=20(#3?= =?UTF-8?q?407)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add periodic traffic reset feature model and ui with localization support * Remove periodic traffic reset fields from client * fix: add periodicTrafficReset field to inbound data structure * feat: implement periodic traffic reset job and integrate with cron scheduler * feat: enhance periodic traffic reset functionality with scheduling and inbound filtering * refactor: rename periodicTrafficReset to trafficReset and add lastTrafficResetTime field * feat: add periodic client traffic reset job and schedule tasks * Update web/job/periodic_traffic_reset_job.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update web/job/periodic_client_traffic_reset_job.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update web/service/inbound.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * refactor: rename periodicTrafficReset to trafficReset and add lastTrafficResetTime * feat: add last traffic reset time display and update logic in inbound service * fix: correct log message for completed periodic traffic reset * refactor: update traffic reset fields in Inbound model and remove unused client traffic reset job * refactor: remove unused traffic reset logic and clean up client model fields * cleanup comments * fix --- web/web.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'web/web.go') diff --git a/web/web.go b/web/web.go index cfd4de5f..d381539d 100644 --- a/web/web.go +++ b/web/web.go @@ -289,6 +289,19 @@ func (s *Server) startTask() { // check client ips from log file every day s.cron.AddJob("@daily", job.NewClearLogsJob()) + // Periodic traffic resets + logger.Info("Scheduling periodic traffic reset jobs") + { + // Inbound traffic reset jobs + // Run once a day, midnight + s.cron.AddJob("@daily", job.NewPeriodicTrafficResetJob("daily")) + // Run once a week, midnight between Sat/Sun + s.cron.AddJob("@weekly", job.NewPeriodicTrafficResetJob("weekly")) + // Run once a month, midnight, first of month + s.cron.AddJob("@monthly", job.NewPeriodicTrafficResetJob("monthly")) + + } + // Make a traffic condition every day, 8:30 var entry cron.EntryID isTgbotenabled, err := s.settingService.GetTgbotEnabled() -- cgit v1.2.3