All Projects → qvl → Sleepto

qvl / Sleepto

Licence: mit
An alternative to traditional task schedulers

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Sleepto

scheduler
Task Scheduler for Laravel applications. UI from scratch
Stars: ✭ 18 (-81.63%)
Mutual labels:  cron, schedule, task-scheduler
Incubator Dolphinscheduler
Apache DolphinScheduler is a distributed and extensible workflow scheduler platform with powerful DAG visual interfaces, dedicated to solving complex job dependencies in the data pipeline and providing various types of jobs available out of box.
Stars: ✭ 6,916 (+6957.14%)
Mutual labels:  schedule, job-scheduler, task-scheduler
Quartznet
Quartz Enterprise Scheduler .NET
Stars: ✭ 4,825 (+4823.47%)
Mutual labels:  cron, job-scheduler
Gocron
Easy and fluent Go cron scheduling. This is a fork from https://github.com/jasonlvhit/gocron
Stars: ✭ 605 (+517.35%)
Mutual labels:  cron, schedule
Mantra
A simple cron-like scheduler for a single command
Stars: ✭ 24 (-75.51%)
Mutual labels:  cron, schedule
Odin
A programmable, observable and distributed job orchestration system.
Stars: ✭ 405 (+313.27%)
Mutual labels:  cron, job-scheduler
Chronos
Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules
Stars: ✭ 4,303 (+4290.82%)
Mutual labels:  cron, job-scheduler
Crono
A time-based background job scheduler daemon (just like Cron) for Rails
Stars: ✭ 637 (+550%)
Mutual labels:  cron, schedule
cron-schedule
A zero-dependency cron parser and scheduler for Node.js, Deno and the browser.
Stars: ✭ 28 (-71.43%)
Mutual labels:  cron, schedule
Crontab
Parse Cron Expressions, Compose Cron Expression Strings and Caluclate Execution Dates.
Stars: ✭ 62 (-36.73%)
Mutual labels:  cron, schedule
Resticprofile
Configuration profiles for restic backup
Stars: ✭ 48 (-51.02%)
Mutual labels:  task-scheduler, systemd
F3 Cron
Job scheduling for the PHP Fat-Free Framework
Stars: ✭ 65 (-33.67%)
Mutual labels:  cron, job-scheduler
Db Scheduler
Persistent cluster-friendly scheduler for Java
Stars: ✭ 352 (+259.18%)
Mutual labels:  job-scheduler, task-scheduler
Restic Systemd Automatic Backup
My restic backup solution using Backblaze B2 storage, systemd timers (or cron) and email notifications on failure.
Stars: ✭ 314 (+220.41%)
Mutual labels:  cron, systemd
gops
配置管理,分布式定时任务
Stars: ✭ 45 (-54.08%)
Mutual labels:  cron, job-scheduler
Agendash
Agenda Dashboard
Stars: ✭ 620 (+532.65%)
Mutual labels:  cron, job-scheduler
Wp Missed Schedule
Find only missed schedule posts, every 15 minutes, and republish correctly 10 items each session. The Original plugin (only this) no longer available on WordPress.org for explicit author request! Compatible with WP 2.1+ to 4.9+ and 5.0-beta3 (100.000+ installs 300.000+ downloads 2016-04-13) Please: do not install unauthorized malware cloned forked!
Stars: ✭ 69 (-29.59%)
Mutual labels:  cron, schedule
linda
Linda is a simple dispatcher library.
Stars: ✭ 12 (-87.76%)
Mutual labels:  cron, schedule
Smart Scheduler Android
A utility library for scheduling periodic and non-periodic jobs efficiently.
Stars: ✭ 930 (+848.98%)
Mutual labels:  schedule, job-scheduler
Ppgo job
PPGo_Job是一款可视化的、多人多权限的、一任务多机执行的定时任务管理系统,采用golang开发,安装方便,资源消耗少,支持大并发,可同时管理多台服务器上的定时任务。
Stars: ✭ 1,152 (+1075.51%)
Mutual labels:  cron, job-scheduler

💤 sleepto

GoDoc Build Status Go Report Card

sleepto is a simple alternative to task schedulers like Cron.

It only handles the timing and doesn't run a daemon like other schedulers do. Instead we encourage you to use your systems default init system (for example Systemd) to control your jobs. This allows you to:

  • Use and watch scheduled jobs the way you use all other services running on your system (for example using ps).
  • Start and pause jobs like any other service on your system.
  • Use your systems default logging system.
  • No conflicts - next task is only scheduled after previous one finished.
  • Trigger immediate execution by sending a SIGALRM signal.
  • Specify execution times with the precision of seconds (Cron only supports minutes).
  • Always know the time of the next execution.

Thanks to runwhen for inspiration.

Usage: sleepto [flags...] [command...]

Sleep until next time the specified conditions match.

Conditions are specified with flags.
All flags are optional and can be used in any combination.
The condition flags take one or more value each.
Values are separated by comma.

Note that conditions match not the current, but the next possible match.
When the current date is March 2017
and you run 'sleepto -month 3' the execution time is March 1, 2018.

A command can be specified optionally.
All arguments following the command are passed to it.

When the process receives a SIGALRM signal it finishes immediately.

Examples:
  # Next 10th of month at 3pm
  sleepto -day 10 -hour 15 /bin/send-report
  # Next occurence of one quarter of hour
  sleepto -minute 0,15,30,45 say "Hello human"
  # Next day at 1am
  sleepto -hour 1 && ~/dbbackup.sh

Flags:
  -day value
        1 to 31
  -hour value
        0 to 23
  -minute value
        0 to 59
  -month value
        1 to 12
  -second value
        0 to 59
  -silent
        Suppress all output
  -version
        Print binary version
  -weekday value
        mo,tu,we,th,fr,sa,su
  -year value
        list of years

For more visit: https://qvl.io/sleepto

Install

  • With Go:
go get qvl.io/sleepto
brew install qvl/tap/sleepto

Setup

sleepto can be used in different scenarios but the most common one is probably to combine it with an init system.

Systemd

Systemd already runs on most Linux systems.

It even has its own timer implementation which can be the right solution for many use cases. However, if you don't want to depend on the specific features of one init system or you like to reuse the same logic in other scenarios sleepto can be the the right tool for that.

See ghbackup for an example on how to use sleepto in a service.

  • See the logs for your service use:
sudo journalctl -u servicename
  • List processes which should include your service:
ps fux
  • Immediately finish sleeping:
sudo systemctl kill -s ALRM servicename

Development

Make sure to use gofmt and create a Pull Request.

Releasing

Push a new Git tag and GoReleaser will automatically create a release.

License

MIT

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