-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.go
93 lines (77 loc) · 1.91 KB
/
test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package main
import (
"fmt"
"net/http"
"strconv"
"time"
"github.com/jinzhu/gorm"
_ "github.com/mattn/go-sqlite3"
"github.com/qor/qor"
"github.com/qor/qor/admin"
"github.com/qor/qor/worker"
)
var db gorm.DB
func init() {
var err error
db, err = gorm.Open("sqlite3", "tmp/worker.db")
if err != nil {
panic(err)
}
// db.LogMode(true)
}
func main() {
config := qor.Config{DB: &db}
web := admin.New(&config)
// web.UseResource(user)
// if err := db.DropTable(&worker.QorJob{}).Error; err != nil {
// panic(err)
// }
if err := db.AutoMigrate(&worker.QorJob{}).Error; err != nil {
panic(err)
}
worker.SetJobDB(&db)
bq := worker.NewBeanstalkdQueue("beanstalkd", "localhost:11300")
var counter int
publishWorker := worker.New("Publish Jobs")
web.AddResource(publishWorker, nil)
publish := publishWorker.NewJob(bq, "publish products", "publish products so users could purchase new items", func(job *worker.QorJob) (err error) {
log, err := job.GetLogger()
if err != nil {
return
}
_, err = log.Write([]byte(strconv.Itoa(counter) + "\n"))
counter++
time.Sleep(time.Minute * 5)
return
})
// job.Meta(&admin.Meta{
// Name: "File",
// Type: "file",
// Valuer: func(interface{}, *qor.Context) interface{} {
// return nil
// },
// Setter: func(resource interface{}, metaValues *resource.MetaValues, context *qor.Context) {
// return
// },
// })
publish.Meta(&admin.Meta{
Name: "Message",
Type: "string",
})
publish.Meta(&admin.Meta{
Name: "File",
Type: "file",
})
publishWorker.NewJob(bq, "send mail magazines", "send mail magazines to subscribed users", nil)
// extraInput := admin.NewResource(&Language{})
// w.ExtraInput(extraInput)
worker.Listen()
// _ = job
// if _, err := job.NewQorJob(1, time.Now()); err != nil {
// panic(err)
// }
fmt.Println("listening on :8080")
mux := http.NewServeMux()
web.MountTo("/admin", mux)
http.ListenAndServe(":8080", mux)
}