|
|
|
@ -7,6 +7,8 @@
|
|
|
|
|
package demo |
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
"time" |
|
|
|
|
|
|
|
|
|
"forge.chapril.org/armen/runner" |
|
|
|
|
"forge.chapril.org/armen/workers" |
|
|
|
|
|
|
|
|
@ -20,7 +22,33 @@ type demo struct {
|
|
|
|
|
|
|
|
|
|
var _demo *demo |
|
|
|
|
|
|
|
|
|
func (d *demo) jt1(job *runner.Job) { |
|
|
|
|
func (d *demo) panic(_ *runner.Job) { |
|
|
|
|
panic("it's only a test") //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (d *demo) pending(job *runner.Job) { |
|
|
|
|
v, ok := job.Private["key"] |
|
|
|
|
if ok { |
|
|
|
|
value, ok := v.(int) |
|
|
|
|
if ok { |
|
|
|
|
if value == 3 { |
|
|
|
|
// end
|
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
job.SetPrivate("key", value+1) |
|
|
|
|
} else { |
|
|
|
|
job.Failed().SetError("bug") |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
job.SetPrivate("key", 0) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
job.Pending().SetDuration(time.Second) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (d *demo) succeeded(_ *runner.Job) { |
|
|
|
|
// nothing to do
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func Build(app components.Application, logger components.Logger, model components.Model) error { |
|
|
|
@ -28,16 +56,25 @@ func Build(app components.Application, logger components.Logger, model component
|
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if _, ok := app.LookupEnv("DEMO"); !ok { |
|
|
|
|
if v, ok := app.LookupEnv("DEMO"); !ok || v != "t" && v != "true" { |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
d := &demo{ |
|
|
|
|
logger: logger, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
r := runner.New("demo", model) |
|
|
|
|
|
|
|
|
|
if err := r.AddJobHandler("jt1", runner.JHF(d.jt1)); err != nil { |
|
|
|
|
if err := r.AddJobHandler("panic", runner.JHF(d.panic)); err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err := r.AddJobHandler("pending", runner.JHF(d.pending)); err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err := r.AddJobHandler("succeeded", runner.JHF(d.succeeded)); err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|