MCPcopy Create free account
hub / github.com/actiontech/dtle / SignalTask

Method SignalTask

driver/driver.go:788–852  ·  view source on GitHub ↗
(taskID string, signal string)

Source from the content-addressed store, hash-verified

786}
787
788func (d *Driver) SignalTask(taskID string, signal string) error {
789 d.logger.Debug("SignalTask", "taskID", taskID, "signal", signal)
790 // SignalTask: driver=dtle @module=dtle pid=72685 signal=SIGKILL taskID=37c60a2d-b7c0-37ff-787b-fdb98e921e92/Src/51b71e84
791
792 h, ok := d.tasks.Get(taskID)
793 if !ok {
794 return drivers.ErrTaskNotFound
795 }
796
797 err := d.eventer.EmitEvent(&drivers.TaskEvent{
798 TaskID: taskID,
799 TaskName: h.taskConfig.Name,
800 AllocID: h.taskConfig.AllocID,
801 Timestamp: time.Now(),
802 Message: fmt.Sprintf("Task receive signal %v", signal),
803 Annotations: nil,
804 Err: nil,
805 })
806 if err != nil {
807 d.logger.Error("error at sending task event", "err", err, "signal", signal)
808 }
809 //if h.exitResult == nil {
810 // return nil
811 //}
812
813 switch signal {
814 case "stats":
815 if h.stats != nil {
816 bs, err := json.Marshal(h.stats)
817 if err != nil {
818 return err
819 }
820 return errors.New(string(bs))
821 }
822 case "finish":
823 if h.runner == nil {
824 return fmt.Errorf("h.runner is nil")
825 }
826 return h.runner.Finish1()
827 case "pause":
828 d.logger.Info("pause a task", "taskID", taskID)
829 if h.runner == nil {
830 return fmt.Errorf("h.runner is nil")
831 }
832 err := h.runner.Shutdown()
833 if err != nil {
834 d.logger.Error("error when pausing a task", "taskID", taskID, "err", err)
835 }
836 // Keep old runner for stats()
837 //h.runner = nil
838 return nil
839 case "resume":
840 d.logger.Info("resume a task", "taskID", taskID)
841 err := h.resumeTask(d)
842 if err != nil {
843 d.logger.Error("error when resuming a task", "taskID", taskID, "err", err)
844 h.onError(err)
845 }

Callers

nothing calls this directly

Calls 6

GetMethod · 0.80
resumeTaskMethod · 0.80
MarshalMethod · 0.65
Finish1Method · 0.65
ShutdownMethod · 0.65
onErrorMethod · 0.45

Tested by

no test coverage detected