All Projects → bastiankoetsier → schedule

bastiankoetsier / schedule

Licence: MIT License
Go-based Task Scheduling System

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to schedule

theeye-of-sauron
TheEye Dockers and QuickStart
Stars: ✭ 27 (+92.86%)
Mutual labels:  task-scheduler
dw-thread-pool
A simple, header-only, dependency-free, C++ 11 based ThreadPool library.
Stars: ✭ 26 (+85.71%)
Mutual labels:  task-scheduler
scheduler
Task Scheduler for Laravel applications. UI from scratch
Stars: ✭ 18 (+28.57%)
Mutual labels:  task-scheduler
hicma
HiCMA: Hierarchical Computations on Manycore Architectures
Stars: ✭ 21 (+50%)
Mutual labels:  task-scheduler
crontab
cron expression parser and executor for dotnet core.
Stars: ✭ 13 (-7.14%)
Mutual labels:  task-scheduler
MahiruLauncher
🍢 Cross-platform modular launcher
Stars: ✭ 14 (+0%)
Mutual labels:  task-scheduler
ptScheduler
Pretty tiny Scheduler or ptScheduler is an Arduino library for writing non-blocking periodic tasks easily.
Stars: ✭ 14 (+0%)
Mutual labels:  task-scheduler
psched
Priority-based Task Scheduling for Modern C++
Stars: ✭ 59 (+321.43%)
Mutual labels:  task-scheduler
gronx
Lightweight, fast and dependency-free Cron expression parser (due checker), task scheduler and/or daemon for Golang (tested on v1.13 and above) and standalone usage
Stars: ✭ 206 (+1371.43%)
Mutual labels:  task-scheduler
bikeshed
Lock free hierarchical work scheduler
Stars: ✭ 78 (+457.14%)
Mutual labels:  task-scheduler
gohive
🐝 A Highly Performant and easy to use goroutine pool for Go
Stars: ✭ 41 (+192.86%)
Mutual labels:  task-scheduler
TaskManager
A C++14 Task Manager / Scheduler
Stars: ✭ 81 (+478.57%)
Mutual labels:  task-scheduler
Windows-TaskSchedule
Windows下的任务调试框架, 支持Cron表达式,支持任务以插件形式添加,支持调用外部程序,支持部署为windows服务...
Stars: ✭ 39 (+178.57%)
Mutual labels:  task-scheduler
orkid-node
Reliable and modern Redis Streams based task queue for Node.js 🤖
Stars: ✭ 61 (+335.71%)
Mutual labels:  task-scheduler
routinger
Routinger is a task scheduler app that is made to make you a better person at no extra cost. The code is open-source. Dart language and Flutter framework are used extensively.
Stars: ✭ 14 (+0%)
Mutual labels:  task-scheduler
php-task
Interface library for the PHPTask library
Stars: ✭ 23 (+64.29%)
Mutual labels:  task-scheduler
outspline
Extensible outliner and personal time organizer to manage todo lists, schedule tasks, remind events.
Stars: ✭ 41 (+192.86%)
Mutual labels:  task-scheduler
sqs-taskqueue
A drop-in replacement for Kue with Amazon SQS backend
Stars: ✭ 16 (+14.29%)
Mutual labels:  task-scheduler
reflow
A light-weight lock-free series/parallel combined scheduling framework for tasks. The goal is to maximize parallelism in order to minimize the execution time overall.
Stars: ✭ 23 (+64.29%)
Mutual labels:  task-scheduler
King.Service
Task scheduling for .NET
Stars: ✭ 34 (+142.86%)
Mutual labels:  task-scheduler

Schedule

GoDoc Go Report Card cover.run go

Schedule is a small library that helps you specify recurring tasks in a cronjob-like interface (without actually using cron's syntax). It is heavily inspired by Laravel's Task Scheduling and uses cronexpr for the heavy lifting.

Install

I recommend dep for dependency management:

dep ensure -add github.com/bastiankoetsier/schedule

Usage

Example

// create a base context with cancellation
ctx, cancel := context.WithCancel(context.Background())
defer cancel()

s := &schedule.Schedule{}
// Start returns a channel which you can receive on as soon as the scheduler is shut down
shutDown := s.Start(ctx)

// You can use the helper schedule.RunFunc to wrap any arbitray function to use
s.Command(schedule.RunFunc(func(ctx context.Context) {
    fmt.Println("I run every minute", time.Now())
})).EveryMinute()

// You can also chain the specs on when to run:
s.Command(schedule.RunFunc(func(ctx context.Context) {
    fmt.Println("I run only mondays, but every fifteen minutes of that weekday", time.Now())
})).Mondays().EveryFifteenMinutes()

Matchers

The chainable matchers can be found on the Entry type.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].