github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/client/allocrunner/taskrunner/interfaces/lifecycle.go (about)

     1  package interfaces
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/hashicorp/nomad/nomad/structs"
     7  )
     8  
     9  type TaskLifecycle interface {
    10  	// Restart a task in place. If failure=false then the restart does not
    11  	// count as an attempt in the restart policy.
    12  	Restart(ctx context.Context, event *structs.TaskEvent, failure bool) error
    13  
    14  	// Sends a signal to a task.
    15  	Signal(event *structs.TaskEvent, signal string) error
    16  
    17  	// Kill a task permanently.
    18  	Kill(ctx context.Context, event *structs.TaskEvent) error
    19  
    20  	// IsRunning returns true if the task runner has a handle to the task
    21  	// driver, which is useful for distinguishing restored tasks during
    22  	// prestart hooks. But note that the driver handle could go away after you
    23  	// check this, so callers should make sure they're handling that case
    24  	// safely. Ideally prestart hooks should be idempotent whenever possible
    25  	// to handle restored tasks; use this as an escape hatch.
    26  	IsRunning() bool
    27  }