make your short-term command as a long-term job
Shell Install (Linux & MacOS)
# binary will be $(go env GOPATH)/bin/job
$: curl -sfL https://raw.githubusercontent.com/liujianping/job/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
# In alpine linux (as it does not come with curl by default)
$: wget -O - -q https://raw.githubusercontent.com/liujianping/job/master/install.sh | sh -s
Brew install
$: brew tap liujianping/tap && brew install job
OR
$: git clone https://github.com/liujianping/job.git
$: cd job
$: go build -mod vendor
$: job -h
Job, make your short-term command as a long-term job
Usage:
job [flags] [command args ...]
Examples:
(simple) $: job echo hello
(schedule) $: job -s "* * * * *" -- echo hello
(retry) $: job -r 3 -- echox hello
(repeat) $: job -n 10 -i 100ms -- echo hello
(concurrent) $: job -c 10 -n 10 -- echo hello
(timeout cmd) $: job -t 500ms -- sleep 1
(timeout job) $: job -T 3s -r 4 -- sleep 1
Flags:
-t, --cmd-timeout duration job command timeout duration
-c, --concurrent int job concurrent numbers
-h, --help help for job
-T, --job-timeout duration job timeout duration
-i, --repeat-interval duration job repeat interval duration
-n, --repeat-times int job repeat times, 0 means forever (default 1)
-r, --retry int job command retry times when failed
-s, --schedule string job schedule in crontab format
--version version for job