tasklog.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package tasklog
  2. import (
  3. "github.com/gogf/gf/v2/database/gdb"
  4. "golang.org/x/net/context"
  5. "nodeMonitor/internal/dao"
  6. "nodeMonitor/internal/model/do"
  7. "nodeMonitor/internal/model/entity"
  8. "nodeMonitor/internal/service"
  9. )
  10. type (
  11. sTaskLog struct{}
  12. )
  13. func init() {
  14. service.RegisterTaskLog(New())
  15. }
  16. func New() *sTaskLog {
  17. return &sTaskLog{}
  18. }
  19. // Create 创建延迟日志
  20. func (c *sTaskLog) Create(ctx context.Context, name string, content string) error {
  21. return dao.Tasklog.Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
  22. _, err := dao.Tasklog.Ctx(ctx).Data(do.Tasklog{
  23. Taskname: name,
  24. Taskconet: content,
  25. }).Insert()
  26. return err
  27. })
  28. }
  29. func (c *sTaskLog) GetTasLog(ctx context.Context) ([]*entity.Tasklog, error) {
  30. var data []*entity.Tasklog
  31. config, err := service.Config().GetConfig(ctx, "tasktime")
  32. if err != nil {
  33. return nil, err
  34. }
  35. err = dao.Tasklog.Ctx(ctx).Where("create_at > DATE_SUB(NOW(),INTERVAL ? MINUTE)", config.Value).OrderDesc("create_at").Scan(&data)
  36. if err != nil {
  37. return nil, err
  38. }
  39. return data, nil
  40. }
  41. func (c *sTaskLog) ClearTasLog(ctx context.Context) error {
  42. config, err := service.Config().GetConfig(ctx, "tasktimeclear")
  43. if err != nil {
  44. return err
  45. }
  46. _, err = dao.Tasklog.Ctx(ctx).Where("create_at <= DATE(DATE_SUB(NOW(),INTERVAL ? DAY))", config.Value).Delete()
  47. if err != nil {
  48. return err
  49. }
  50. return nil
  51. }