All Projects → farmerx → wheeltimer

farmerx / wheeltimer

Licence: other
crontab, golang crontab, wheeltimer

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to wheeltimer

LexikCronFileGeneratorBundle
This symfony bundle provides service for generate cron file
Stars: ✭ 20 (+53.85%)
Mutual labels:  cron
pytorch-aarch64
PyTorch wheels (whl) & conda for aarch64 / ARMv8 / ARM64
Stars: ✭ 137 (+953.85%)
Mutual labels:  wheel
wheelodex
An index of wheels
Stars: ✭ 20 (+53.85%)
Mutual labels:  wheel
gh-action-data-scraping
this shows how to use github actions to do periodic data scraping
Stars: ✭ 147 (+1030.77%)
Mutual labels:  cron
mautic-cron-commands
Script to run Mautic commands from a web page.
Stars: ✭ 32 (+146.15%)
Mutual labels:  cron
scheduler
Task Scheduler for Laravel applications. UI from scratch
Stars: ✭ 18 (+38.46%)
Mutual labels:  cron
magento2-module-cron-schedule
A Magento2 visual cronjob overview for magento2 backend
Stars: ✭ 35 (+169.23%)
Mutual labels:  cron
emsm
A lightweight, easy to extend minecraft server manager.
Stars: ✭ 72 (+453.85%)
Mutual labels:  cron
adsorber
Ad-blocker for Linux systems purely built on POSIX-compliant shell scripts.
Stars: ✭ 57 (+338.46%)
Mutual labels:  cron
arask
Automatic RAils taSKs.
Stars: ✭ 31 (+138.46%)
Mutual labels:  cron
job-plus
Job Plus项目是基于SpringBoot+Vue的轻量级定时任务管理系统
Stars: ✭ 17 (+30.77%)
Mutual labels:  cron
kaabah
A Terraform solution to design, build and operate Docker Swarm infrastructures
Stars: ✭ 29 (+123.08%)
Mutual labels:  cron
php-mvc
PHP MVC ⦿ Dockerized • Composer • RESTful API • Memcached • cron • WebSocket
Stars: ✭ 17 (+30.77%)
Mutual labels:  cron
cli
Aplus Framework CLI Library
Stars: ✭ 104 (+700%)
Mutual labels:  cron
cron-command
Tests, runs, and deletes WP-Cron events; manages WP-Cron schedules.
Stars: ✭ 23 (+76.92%)
Mutual labels:  cron
schedule-rs
An in-process scheduler for periodic jobs. Schedule lets you run Rust functions on a cron-like schedule.
Stars: ✭ 93 (+615.38%)
Mutual labels:  cron
nodejs-cron-job-must-know
it is an example of running node.js script with every certain period(cron job)
Stars: ✭ 35 (+169.23%)
Mutual labels:  cron
kitsu-season-trends
🦊 Kitsu seasonal anime trends
Stars: ✭ 13 (+0%)
Mutual labels:  cron
TensorFlow-Raspberry-Pi 64-bit
TensorFlow installation wheels for Raspberry Pi 64 OS
Stars: ✭ 27 (+107.69%)
Mutual labels:  wheel
asparagus
An easy to use task scheduler for distributed systems
Stars: ✭ 14 (+7.69%)
Mutual labels:  cron

wheeltimer

Linux
*    *    *    *    *    *
-    -    -    -    -    -
|    |    |    |    |    |
|    |    |    |    |    + year [optional]
|    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7)
|    |    |    +---------- month (1 - 12)
|    |    +--------------- day of month (1 - 31)
|    +-------------------- hour (0 - 23)
+------------------------- min (0 - 59)

Java(Spring) AND GO(wheeltimer)
*    *    *    *    *    *    *
-    -    -    -    -    -    -
|    |    |    |    |    |    |
|    |    |    |    |    |    + year [optional]
|    |    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7)
|    |    |    |    +---------- month (1 - 12)
|    |    |    +--------------- day of month (1 - 31)
|    |    +-------------------- hour (0 - 23)
|    +------------------------- min (0 - 59)
+------------------------------ second (0 - 59)

crontab规则表达式验证网址

很实用的工具,推广一下: crontab表达式验证网址

wheeltimer: Use github.com/farmerx/wheeltimer

wg := &sync.WaitGroup{}

wheel := NewTimingWheel(context.TODO())
timeout := NewOnTimeOut(func() {
	fmt.Println(`hahahah `)
})
timerID := wheel.AddTimer(`1 7/13 * * * *`, timeout)
fmt.Printf("Add timer %d\n", timerID)
c := time.After(9 * time.Minute)
wg.Add(1)
go func() {
	for {
		select {
		case timeout := <-wheel.TimeOutChannel():
			timeout.Callback()
		case <-c:
			wg.Done()
		}
	}
}()
wg.Wait()
wheel.Stop()

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].