Git Product home page Git Product logo

schedule's Introduction

AtomicGo | schedule

Downloads Latest Release Tests Coverage Unit test count License: MIT Go report


Documentation | Contributing | Code of Conduct


AtomicGo

go get atomicgo.dev/schedule

schedule

import "atomicgo.dev/schedule"

Package schedule provides a simple scheduler for Go.

It can run a function at a given time, in a given duration, or repeatedly at a given interval.

Index

type Task

Task holds information about the running task and can be used to stop running tasks.

type Task struct {
    // contains filtered or unexported fields
}

func After

func After(duration time.Duration, task func()) *Task

After executes the task after the given duration. The function is non-blocking. If you want to wait for the task to be executed, use the Task.Wait method.

Example

package main

import (
	"fmt"
	"time"

	"atomicgo.dev/schedule"
)

func main() {
	task := schedule.After(5*time.Second, func() {
		fmt.Println("5 seconds are over!")
	})

	fmt.Println("Some stuff happening...")

	task.Wait()
}

func At

func At(t time.Time, task func()) *Task

At executes the task at the given time. The function is non-blocking. If you want to wait for the task to be executed, use the Task.Wait method.

Example

package main

import (
	"fmt"
	"time"

	"atomicgo.dev/schedule"
)

func main() {
	task := schedule.At(time.Now().Add(5*time.Second), func() {
		fmt.Println("5 seconds are over!")
	})

	fmt.Println("Some stuff happening...")

	task.Wait()
}

func Every

func Every(interval time.Duration, task func() bool) *Task

Every executes the task in the given interval, as long as the task function returns true. The function is non-blocking. If you want to wait for the task to be executed, use the Task.Wait method.

Example

package main

import (
	"fmt"
	"time"

	"atomicgo.dev/schedule"
)

func main() {
	task := schedule.Every(time.Second, func() bool {
		fmt.Println("1 second is over!")

		return true // return false to stop the task
	})

	fmt.Println("Some stuff happening...")

	time.Sleep(10 * time.Second)

	task.Stop()
}

func (*Task) ExecutesIn

func (s *Task) ExecutesIn() time.Duration

ExecutesIn returns the duration until the next execution.

func (*Task) IsActive

func (s *Task) IsActive() bool

IsActive returns true if the scheduler is active.

func (*Task) NextExecutionTime

func (s *Task) NextExecutionTime() time.Time

NextExecutionTime returns the time when the next execution will happen.

func (*Task) StartedAt

func (s *Task) StartedAt() time.Time

StartedAt returns the time when the scheduler was started.

func (*Task) Stop

func (s *Task) Stop()

Stop stops the scheduler.

func (*Task) Wait

func (s *Task) Wait()

Wait blocks until the scheduler is stopped. After and At will stop automatically after the task is executed.

Generated by gomarkdoc


AtomicGo.dev  ·  with ❤️ by @MarvinJWendt | MarvinJWendt.com

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.