rentease/cmd/cron/main.go
2025-03-23 23:00:02 +01:00

48 lines
892 B
Go

package main
import (
"log"
"os"
"os/signal"
"syscall"
"github.com/rjNemo/rentease/pkg/cron"
)
func main() {
scheduler := cron.New()
scheduler.AddJob(cron.Job{
Name: "Monthly Booking Report",
Schedule: "minute",
// Schedule: "monthly",
// Action: cron.JobMonthlyBookingReport,
})
go scheduler.Start()
go func() {
for {
select {
case err := <-scheduler.ErrChan:
if err != nil {
log.Println("Error:", err)
}
case msg := <-scheduler.SuccessChan:
log.Print(msg)
}
}
}()
// Capture termination signals for graceful shutdown
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
// Wait for termination signal
<-sigChan
log.Println("Received termination signal, shutting down...")
// Stop the task manager and close channels
scheduler.Stop()
log.Println("All tasks stopped, exiting.")
}