Advertisement
mo1far

Untitled

Mar 13th, 2025
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.66 KB | None | 0 0
  1. package variables
  2.  
  3. import (
  4.     "encoding/binary"
  5.     "os"
  6.     "sync/atomic"
  7.     "time"
  8. )
  9.  
  10. const lastEventFile = "last_event.dat"
  11.  
  12. var LastEvent atomic.Int64
  13.  
  14. func InitLastEvent() {
  15.     data, err := os.ReadFile(lastEventFile)
  16.     if err == nil && len(data) == 8 {
  17.         value := int64(binary.LittleEndian.Uint64(data))
  18.         LastEvent.Store(value)
  19.     }
  20.  
  21.     go periodicSave()
  22. }
  23.  
  24. func SaveLastEvent() error {
  25.     value := LastEvent.Load()
  26.     data := make([]byte, 8)
  27.     binary.LittleEndian.PutUint64(data, uint64(value))
  28.     return os.WriteFile(lastEventFile, data, 0644)
  29. }
  30.  
  31. func periodicSave() {
  32.     ticker := time.NewTicker(1 * time.Minute)
  33.     for range ticker.C {
  34.         SaveLastEvent()
  35.     }
  36. }
  37.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement