/job

JOB, make your short-term command as a long-term job. 将命令行规划成任务的工具

Primary LanguageShell

job

GoDoc Go Report Card Build Status Version Coverage Status

make your short-term command as a long-term job

Install

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

Usage

$: 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