polling on file changes should work now
This commit is contained in:
@@ -104,10 +104,34 @@ func (t *CodingTask) Setup(ctx context.Context) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
ticker := time.NewTicker(1 * time.Second)
|
||||||
|
defer ticker.Stop()
|
||||||
|
lastMod := t.lastModified
|
||||||
|
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ticker.C:
|
||||||
|
if stat, err := os.Stat("./code.txt"); err == nil {
|
||||||
|
if stat.ModTime().After(lastMod) {
|
||||||
|
lastMod = stat.ModTime()
|
||||||
|
if t.app.SubmitChan != nil {
|
||||||
|
select {
|
||||||
|
case t.app.SubmitChan <- models.ValidationTrigger{Source: models.ValidationTriggerAutoPoll}:
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case <-ctx.Done():
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func (t *CodingTask) Validate(ctx context.Context) ValidationFeedback {
|
func (t *CodingTask) Validate(ctx context.Context) ValidationFeedback {
|
||||||
expect := check.NewExpector()
|
expect := check.NewExpector()
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,35 @@ func (t *GitTask) Setup(ctx context.Context) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
ticker := time.NewTicker(1 * time.Second)
|
||||||
|
defer ticker.Stop()
|
||||||
|
var lastMod time.Time
|
||||||
|
|
||||||
|
if stat, err := os.Stat("./task/.git/index"); err == nil {
|
||||||
|
lastMod = stat.ModTime()
|
||||||
|
}
|
||||||
|
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ticker.C:
|
||||||
|
if stat, err := os.Stat("./task/.git/index"); err == nil {
|
||||||
|
if stat.ModTime().After(lastMod) {
|
||||||
|
lastMod = stat.ModTime()
|
||||||
|
if t.app.SubmitChan != nil {
|
||||||
|
select {
|
||||||
|
case t.app.SubmitChan <- models.ValidationTrigger{Source: models.ValidationTriggerAutoPoll}:
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case <-ctx.Done():
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user