1
0
mirror of https://github.com/nxshock/gron.git synced 2024-11-27 03:41:00 +05:00
SystemD and cron inspired job scheduler
Go to file
2022-11-05 14:07:55 +05:00
tests Add sql execution 2022-05-10 19:44:41 +05:00
webui Limit size of pre blocks 2022-10-27 13:35:02 +05:00
.gitattributes Initial commit 2022-03-26 13:23:39 +05:00
.gitignore Do not add log files 2022-05-10 21:29:15 +05:00
config.go Default config path = bin path + config name 2022-10-21 19:37:30 +05:00
consts.go Add basic Windows service support 2022-10-23 10:23:35 +05:00
db.go Add MS SQL database logging 2022-05-14 14:17:52 +05:00
go.mod Add basic Windows service support 2022-10-23 10:23:35 +05:00
go.sum Add basic Windows service support 2022-10-23 10:23:35 +05:00
gron.conf Compact time format 2022-03-28 19:55:21 +05:00
httpclient.go Show http get/post errors in logs 2022-11-05 14:07:55 +05:00
httpserver.go Add basic Windows service support 2022-10-23 10:23:35 +05:00
job_test.go Add sql execution 2022-05-10 19:44:41 +05:00
job.go Show http get/post errors in logs 2022-11-05 14:07:55 +05:00
jobtype.go Add sql execution 2022-05-10 19:44:41 +05:00
kernel.go Add basic Windows service support 2022-10-23 10:23:35 +05:00
LICENSE Initial commit 2022-03-26 13:23:39 +05:00
log.go Add LogWriter 2022-05-14 14:17:30 +05:00
main.go Show http get/post errors in logs 2022-11-05 14:07:55 +05:00
make.bat More changes 2022-03-27 12:39:24 +05:00
README.md Add job categories 2022-10-21 20:12:41 +05:00
restartrule_test.go Add on error restart job options 2022-03-29 21:38:04 +05:00
restartrule.go Add on error restart job options 2022-03-29 21:38:04 +05:00
status.go New updates 2022-03-30 21:06:55 +05:00
strutils.go WIP: Add job HTTP callbacks 2022-06-21 22:14:50 +05:00
template.go New updates 2022-03-30 21:06:55 +05:00

gron

SystemD and cron inspired job scheduler

Usage

  1. Create gron.d directory

  2. Create job config in gron.d/job1.conf (TOML format):

    Type                   = "cmd"        # command execution
    Category               = "Test jobs"  # jobs category name
    Cron                   = "* * * * *"  # cron instructions
    
    Command                = "echo Hello" # command to execute
    

    SQL job:

    Type                   = "sql"                            # sql execution
    Cron                   = "* * * * *"                      # cron instructions
    Description            = "execute procedure every minute" # job description
    
    Driver                 = "pgx"                            # "pgx" for Postgresql, "oracle" for Oracle, "sqlserver" for Microsoft SQL Server
    ConnectionString       = "postgres://login:password@host:port/database?sslmode=disable" # each driver has different syntax
    SqlText                = "CALL procedure"                 # command to execute
    

    Add other options if needed:

    Description            = "print Hello every minute" # job description
    NumberOfRestartAttemts = 3                          # number of restart attemts
    RestartSec             = 5                          # the time to sleep before restarting a job (seconds)
    RestartRule            = "on-error"                 # Configures whether the job shall be restarted when the job process exits
    
    OnSuccessCmd           = "echo 'Job finished.'"              # execute cmd on job success
    OnErrorCmd             = "echo 'Error occurred: {{.Error}}'" # execute cmd on job error
    
    
    OnSuccessHttpGetUrl    = ""
    OnErrorHttpGetUrl      = "http://127.0.0.1/alerts?title={{.JobName}}%20failed&message={{.Error}}&tags=warning"
    
    OnSuccessHttpPostUrl   = "http://127.0.0.1/alerts"
    OnSuccessMessageFmt    = "Job {{.JobName}} finished."
    
    OnErrorHttpPostUrl     = "http://127.0.0.1/alerts"
    OnErrorMessageFmt      = "Job {{.JobName}} failed:\n\n{{.Error}}"
    
  3. Launch gron binary

  4. HTTP interface available on http://127.0.0.1:9876