From 083103e4b6c83c9c8a7e1b49287b8572e15b86b8 Mon Sep 17 00:00:00 2001 From: Sergey Solodyagin Date: Wed, 27 Dec 2023 22:03:13 +0300 Subject: [PATCH] chore: rename module --- README.md | 115 ++++++++++++++++++++++++------------------- SECURITY.md | 2 +- example_test.go | 2 +- go.mod | 2 +- mocks/README.md | 7 +-- mocks/distributed.go | 4 +- mocks/go.mod | 4 +- mocks/go.sum | 4 +- mocks/job.go | 2 +- mocks/logger.go | 2 +- mocks/scheduler.go | 4 +- 11 files changed, 81 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index 08e58e0..87d5d66 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # gocron: A Golang Job Scheduling Package -[![CI State](https://github.com/go-co-op/gocron/actions/workflows/go_test.yml/badge.svg?branch=v2&event=push)](https://github.com/go-co-op/gocron/actions) -![Go Report Card](https://goreportcard.com/badge/github.com/go-co-op/gocron) [![Go Doc](https://godoc.org/github.com/go-co-op/gocron/v2?status.svg)](https://pkg.go.dev/github.com/go-co-op/gocron/v2) +[![CI State](https://github.com/andoma-go/gocron/actions/workflows/go_test.yml/badge.svg?branch=v2&event=push)](https://github.com/andoma-go/gocron/actions) +![Go Report Card](https://goreportcard.com/badge/github.com/andoma-go/gocron) [![Go Doc](https://godoc.org/github.com/andoma-go/gocron/v2?status.svg)](https://pkg.go.dev/github.com/andoma-go/gocron/v2) gocron is a job scheduling package which lets you run Go functions at pre-determined intervals. @@ -11,7 +11,7 @@ If you want to chat, you can find us on Slack at ## Quick Start ``` -go get github.com/go-co-op/gocron/v2 +go get github.com/andoma-go/gocron/v2 ``` ```golang @@ -21,7 +21,7 @@ import ( "fmt" "time" - "github.com/go-co-op/gocron/v2" + "github.com/andoma-go/gocron/v2" ) func main() { @@ -70,77 +70,90 @@ func main() { - **Executor**: The executor calls the job's task and manages the complexities of different job execution timing requirements (e.g. singletons that shouldn't overrun each other, limiting the max number of jobs running) - ## Features ### Job types + Jobs can be run at various intervals. -- [**Duration**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#DurationJob): -Jobs can be run at a fixed `time.Duration`. -- [**Random duration**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#DurationRandomJob): -Jobs can be run at a random `time.Duration` between a min and max. -- [**Cron**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#CronJob): -Jobs can be run using a crontab. -- [**Daily**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#DailyJob): -Jobs can be run every x days at specific times. -- [**Weekly**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#WeeklyJob): -Jobs can be run every x weeks on specific days of the week and at specific times. -- [**Monthly**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#MonthlyJob): -Jobs can be run every x months on specific days of the month and at specific times. -- [**One time**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#OneTimeJob): -Jobs can be run once at a specific time. These are non-recurring jobs. + +- [**Duration**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#DurationJob): + Jobs can be run at a fixed `time.Duration`. +- [**Random duration**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#DurationRandomJob): + Jobs can be run at a random `time.Duration` between a min and max. +- [**Cron**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#CronJob): + Jobs can be run using a crontab. +- [**Daily**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#DailyJob): + Jobs can be run every x days at specific times. +- [**Weekly**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#WeeklyJob): + Jobs can be run every x weeks on specific days of the week and at specific times. +- [**Monthly**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#MonthlyJob): + Jobs can be run every x months on specific days of the month and at specific times. +- [**One time**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#OneTimeJob): + Jobs can be run once at a specific time. These are non-recurring jobs. ### Concurrency Limits + Jobs can be limited individually or across the entire scheduler. -- [**Per job limiting with singleton mode**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#WithSingletonMode): -Jobs can be limited to a single concurrent execution that either reschedules (skips overlapping executions) -or queues (waits for the previous execution to finish). -- [**Per scheduler limiting with limit mode**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#WithLimitConcurrentJobs): -Jobs can be limited to a certain number of concurrent executions across the entire scheduler -using either reschedule (skip when the limit is met) or queue (jobs are added to a queue to -wait for the limit to be available). + +- [**Per job limiting with singleton mode**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#WithSingletonMode): + Jobs can be limited to a single concurrent execution that either reschedules (skips overlapping executions) + or queues (waits for the previous execution to finish). +- [**Per scheduler limiting with limit mode**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#WithLimitConcurrentJobs): + Jobs can be limited to a certain number of concurrent executions across the entire scheduler + using either reschedule (skip when the limit is met) or queue (jobs are added to a queue to + wait for the limit to be available). - **Note:** A scheduler limit and a job limit can both be enabled. ### Distributed instances of gocron + Multiple instances of gocron can be run. -- [**Elector**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#WithDistributedElector): -An elector can be used to elect a single instance of gocron to run as the primary with the -other instances checking to see if a new leader needs to be elected. -- Implementations: [go-co-op electors](https://github.com/go-co-op?q=-elector&type=all&language=&sort=) -- [**Locker**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#WithDistributedLocker): -A locker can be used to lock each run of a job to a single instance of gocron. -- Implementations: [go-co-op lockers](https://github.com/go-co-op?q=-lock&type=all&language=&sort=) + +- [**Elector**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#WithDistributedElector): + An elector can be used to elect a single instance of gocron to run as the primary with the + other instances checking to see if a new leader needs to be elected. +- Implementations: [andoma-go electors](https://github.com/andoma-go?q=-elector&type=all&language=&sort=) +- [**Locker**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#WithDistributedLocker): + A locker can be used to lock each run of a job to a single instance of gocron. +- Implementations: [andoma-go lockers](https://github.com/andoma-go?q=-lock&type=all&language=&sort=) ### Events + Job events can trigger actions. -- [**Listeners**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#WithEventListeners): -Can be added to a job, with [event listeners](https://pkg.go.dev/github.com/go-co-op/gocron/v2#EventListener), -or all jobs across the -[scheduler](https://pkg.go.dev/github.com/go-co-op/gocron/v2#WithGlobalJobOptions) -to listen for job events and trigger actions. + +- [**Listeners**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#WithEventListeners): + Can be added to a job, with [event listeners](https://pkg.go.dev/github.com/andoma-go/gocron/v2#EventListener), + or all jobs across the + [scheduler](https://pkg.go.dev/github.com/andoma-go/gocron/v2#WithGlobalJobOptions) + to listen for job events and trigger actions. ### Options + Many job and scheduler options are available. -- [**Job options**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#JobOption): -Job options can be set when creating a job using `NewJob`. -- [**Global job options**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#WithGlobalJobOptions): -Global job options can be set when creating a scheduler using `NewScheduler` -and the `WithGlobalJobOptions` option. -- [**Scheduler options**](https://pkg.go.dev/github.com/go-co-op/gocron/v2#SchedulerOption): -Scheduler options can be set when creating a scheduler using `NewScheduler`. + +- [**Job options**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#JobOption): + Job options can be set when creating a job using `NewJob`. +- [**Global job options**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#WithGlobalJobOptions): + Global job options can be set when creating a scheduler using `NewScheduler` + and the `WithGlobalJobOptions` option. +- [**Scheduler options**](https://pkg.go.dev/github.com/andoma-go/gocron/v2#SchedulerOption): + Scheduler options can be set when creating a scheduler using `NewScheduler`. ### Logging + Logs can be enabled. -- [Logger](https://pkg.go.dev/github.com/go-co-op/gocron/v2#Logger): -The Logger interface can be implemented with your desired logging library. -The provided NewLogger uses the standard library's log package. + +- [Logger](https://pkg.go.dev/github.com/andoma-go/gocron/v2#Logger): + The Logger interface can be implemented with your desired logging library. + The provided NewLogger uses the standard library's log package. ### Testing + The gocron library is set up to enable testing. + - Mocks are provided in [the mock package](mocks) using [gomock](https://github.com/uber-go/mock). - Time can be mocked by passing in a [FakeClock](https://pkg.go.dev/github.com/jonboulle/clockwork#FakeClock) -to [WithClock](https://pkg.go.dev/github.com/go-co-op/gocron/v2#WithClock) - -see the [example on WithClock](https://pkg.go.dev/github.com/go-co-op/gocron/v2#example-WithClock). + to [WithClock](https://pkg.go.dev/github.com/andoma-go/gocron/v2#WithClock) - + see the [example on WithClock](https://pkg.go.dev/github.com/andoma-go/gocron/v2#example-WithClock). ## Supporters @@ -153,4 +166,4 @@ This project is supported by: ## Star History -[![Star History Chart](https://api.star-history.com/svg?repos=go-co-op/gocron&type=Date)](https://star-history.com/#go-co-op/gocron&Date) +[![Star History Chart](https://api.star-history.com/svg?repos=andoma-go/gocron&type=Date)](https://star-history.com/#andoma-go/gocron&Date) diff --git a/SECURITY.md b/SECURITY.md index 6a97ada..8d4e3b1 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -10,6 +10,6 @@ The current plan is to maintain version 1 as long as possible incorporating any ## Reporting a Vulnerability -Vulnerabilities can be reported by [opening an issue](https://github.com/go-co-op/gocron/issues/new/choose) or reaching out on Slack: [](https://gophers.slack.com/archives/CQ7T0T1FW) +Vulnerabilities can be reported by [opening an issue](https://github.com/andoma-go/gocron/issues/new/choose) or reaching out on Slack: [](https://gophers.slack.com/archives/CQ7T0T1FW) We will do our best to addrerss any vulnerabilities in an expeditious manner. diff --git a/example_test.go b/example_test.go index a704c39..04524a0 100644 --- a/example_test.go +++ b/example_test.go @@ -5,7 +5,7 @@ import ( "sync" "time" - . "github.com/go-co-op/gocron/v2" // nolint:revive + . "github.com/andoma-go/gocron/v2" // nolint:revive "github.com/google/uuid" "github.com/jonboulle/clockwork" ) diff --git a/go.mod b/go.mod index 195dd08..da9955f 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/go-co-op/gocron/v2 +module github.com/andoma-go/gocron/v2 go 1.20 diff --git a/mocks/README.md b/mocks/README.md index 4ead997..f9ab741 100644 --- a/mocks/README.md +++ b/mocks/README.md @@ -3,18 +3,19 @@ ## Quick Start ``` -go get github.com/go-co-op/gocronmocks/v2 +go get github.com/andoma-go/gocronmocks/v2 ``` write a test + ```golang package main import ( "testing" - "github.com/go-co-op/gocron/v2" - "github.com/go-co-op/gocronmocks/v2" + "github.com/andoma-go/gocron/v2" + "github.com/andoma-go/gocronmocks/v2" "go.uber.org/mock/gomock" ) diff --git a/mocks/distributed.go b/mocks/distributed.go index 357dc2b..ef89382 100644 --- a/mocks/distributed.go +++ b/mocks/distributed.go @@ -1,5 +1,5 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/go-co-op/gocron/v2 (interfaces: Elector,Locker,Lock) +// Source: github.com/andoma-go/gocron/v2 (interfaces: Elector,Locker,Lock) // // Generated by this command: // @@ -12,7 +12,7 @@ import ( context "context" reflect "reflect" - gocron "github.com/go-co-op/gocron/v2" + gocron "github.com/andoma-go/gocron/v2" gomock "go.uber.org/mock/gomock" ) diff --git a/mocks/go.mod b/mocks/go.mod index ea14635..470e38c 100644 --- a/mocks/go.mod +++ b/mocks/go.mod @@ -1,9 +1,9 @@ -module github.com/go-co-op/gocronmocks/v2 +module github.com/andoma-go/gocronmocks/v2 go 1.20 require ( - github.com/go-co-op/gocron/v2 v2.0.0-rc4 + github.com/andoma-go/gocron/v2 v2.0.0-rc4 github.com/golang/mock v1.6.0 github.com/google/uuid v1.4.0 go.uber.org/mock v0.3.0 diff --git a/mocks/go.sum b/mocks/go.sum index 968e073..95ab24d 100644 --- a/mocks/go.sum +++ b/mocks/go.sum @@ -1,6 +1,6 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/go-co-op/gocron/v2 v2.0.0-rc4 h1:KFYg2CzyHZwPZL/uNnQKEyeL9oKEUQbiLThArcZaVmw= -github.com/go-co-op/gocron/v2 v2.0.0-rc4/go.mod h1:3SLoqKnyORFVN0VvFFb1383hM4WD9XHBPn9aUUp7sQs= +github.com/andoma-go/gocron/v2 v2.0.0-rc4 h1:KFYg2CzyHZwPZL/uNnQKEyeL9oKEUQbiLThArcZaVmw= +github.com/andoma-go/gocron/v2 v2.0.0-rc4/go.mod h1:3SLoqKnyORFVN0VvFFb1383hM4WD9XHBPn9aUUp7sQs= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= diff --git a/mocks/job.go b/mocks/job.go index 0f17772..a7e80e8 100644 --- a/mocks/job.go +++ b/mocks/job.go @@ -1,5 +1,5 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/go-co-op/gocron/v2 (interfaces: Job) +// Source: github.com/andoma-go/gocron/v2 (interfaces: Job) // // Generated by this command: // diff --git a/mocks/logger.go b/mocks/logger.go index abc1b7a..5f4057c 100644 --- a/mocks/logger.go +++ b/mocks/logger.go @@ -1,5 +1,5 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/go-co-op/gocron/v2 (interfaces: Logger) +// Source: github.com/andoma-go/gocron/v2 (interfaces: Logger) // // Generated by this command: // diff --git a/mocks/scheduler.go b/mocks/scheduler.go index 47ce046..3c02248 100644 --- a/mocks/scheduler.go +++ b/mocks/scheduler.go @@ -1,5 +1,5 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/go-co-op/gocron/v2 (interfaces: Scheduler) +// Source: github.com/andoma-go/gocron/v2 (interfaces: Scheduler) // Package gocronmocks is a generated GoMock package. package gocronmocks @@ -7,7 +7,7 @@ package gocronmocks import ( reflect "reflect" - gocron "github.com/go-co-op/gocron/v2" + gocron "github.com/andoma-go/gocron/v2" gomock "github.com/golang/mock/gomock" uuid "github.com/google/uuid" )