1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package main
  2. import (
  3. "github.com/go-sql-driver/mysql"
  4. "github.com/zjxpcyc/tinylogger"
  5. "xorm.io/xorm"
  6. )
  7. var DB *xorm.Engine
  8. // logger 日志记录器
  9. var logger = tinylogger.NewLogger()
  10. // InitDB 初始化数据库
  11. func InitDB() error {
  12. // 连接数据库
  13. config := mysql.NewConfig()
  14. config.User = "serverless"
  15. config.Passwd = "XyooUowbyE3f5Cam"
  16. config.Net = "tcp"
  17. config.Addr = "rm-uf6z3z6jq11x653d77o.mysql.rds.aliyuncs.com"
  18. config.DBName = "job_for_serverless"
  19. config.Params = map[string]string{
  20. "charset": "utf8",
  21. }
  22. var err error
  23. DB, err = xorm.NewEngine("mysql", config.FormatDSN())
  24. if err != nil {
  25. logger.Error(err)
  26. return err
  27. }
  28. // 打印SQL
  29. // DB.ShowSQL(true)
  30. return nil
  31. }
  32. func main() {
  33. // 初始化数据库
  34. if err := InitDB(); err != nil {
  35. panic(err)
  36. }
  37. // 开启 job 服务
  38. job := NewJobPool()
  39. job.Callback(Exec)
  40. job.Start()
  41. //
  42. limit := []int{100}
  43. tasks := GetTasks(limit)
  44. // logger.Info("All Tasks: ", tasks)
  45. for _, task := range tasks {
  46. job.Push(task)
  47. }
  48. job.Done(len(tasks))
  49. }