func (scheduler *TaskScheduler) StopOnce(uuidStr string) {
	scheduler.remove <- uuidStr
}
stop task with uuid
package timing
import (
	"time"
	"log"
	"github.com/google/uuid"
	"os"
)
type OnceCron struct {
	*TaskScheduler
}
type TaskScheduler struct {
	tasks  []TaskInterface
	swap   []TaskInterface
	add    chan TaskInterface
	remove chan string
	stop   chan struct{}
	Logger TaskLogInterface
	lock	bool
}
type Lock interface {
	Lock()
	UnLock()
}
func NewCron() *OnceCron {
	return &OnceCron{
		TaskScheduler:NewScheduler(),
	}
}
func NewScheduler() *TaskScheduler {
	return &TaskScheduler{
		tasks:  make([]TaskInterface, 0),
		swap:   make([]TaskInterface, 0),
		add:    make(chan TaskInterface),
		stop:   make(chan struct{}),
		remove: make(chan string),
		Logger: log.New(os.Stdout, "[Control]: ", log.Ldate|log.Ltime|log.Lshortfile),
		lock:	false,
	}
}
func (scheduler *TaskScheduler) AddFuncSpaceNumber(spaceTime int64, number int, f func()) {
	task := getTaskWithFuncSpacingNumber(spaceTime, number, f)
	scheduler.AddTask(task)
}
func (scheduler *TaskScheduler) AddFuncSpace(spaceTime int64, endTime int64, f func()) {
	task := getTaskWithFuncSpacing(spaceTime, endTime, f)
	scheduler.AddTask(task)
}
func (scheduler *TaskScheduler) AddFunc(unixTime int64, f func()) {
	task := getTaskWithFunc(unixTime, f)
	scheduler.AddTask(task)
}
func (scheduler *TaskScheduler) AddTaskInterface(task TaskInterface) {
    scheduler.addTask(task)
}
func (scheduler *TaskScheduler) AddTask(task *Task) string {
	if task.RunTime < 100000000000 {
		task.RunTime = task.RunTime * int64(time.Second)
	}
	if task.RunTime < time.Now().UnixNano() {
		task.RunTime = time.Now().UnixNano() + int64(time.Second)
	}
	if task.Uuid == "" {
		task.Uuid = uuid.New().String()
	}
	return scheduler.addTask(task)
}
func (scheduler *TaskScheduler) addTask(task TaskInterface) string  {
	if scheduler.lock {
		scheduler.swap = append(scheduler.swap, task)
		scheduler.add <- task
	} else{
		scheduler.tasks = append(scheduler.tasks, task)
		scheduler.add <- task
	}
	return task.GetUuid()
}
func (scheduler *TaskScheduler) ExportInterface() []TaskInterface {
    return scheduler.tasks
}
func (scheduler *TaskScheduler) Export() []*Task {
    task := make([]*Task,0)
    for _,v := range scheduler.tasks {
        task = append(task, v.(*Task))
    }
	return task
}