README.md in rufus-scheduler-3.2.2 vs README.md in rufus-scheduler-3.3.0

- old
+ new

@@ -4,10 +4,12 @@ [![Build Status](https://secure.travis-ci.org/jmettraux/rufus-scheduler.svg)](http://travis-ci.org/jmettraux/rufus-scheduler) [![Gem Version](https://badge.fury.io/rb/rufus-scheduler.svg)](http://badge.fury.io/rb/rufus-scheduler) Job scheduler for Ruby (at, cron, in and every jobs). +It uses threads. + **Note**: maybe are you looking for the [README of rufus-scheduler 2.x](https://github.com/jmettraux/rufus-scheduler/blob/two/README.rdoc)? Quickstart: ```ruby # quickstart.rb @@ -53,15 +55,17 @@ # ... ``` ## non-features -Rufus-scheduler (out of the box) is an in-process, in-memory scheduler. +Rufus-scheduler (out of the box) is an in-process, in-memory scheduler. It uses threads. It does not persist your schedules. When the process is gone and the scheduler instance with it, the schedules are gone. +A rufus-scheduler instance will go on scheduling while it is present among the object in a Ruby process. To make it stop scheduling you have to call its [`#shutdown` method](#schedulershutdown). + ## related and similar gems * [Whenever](https://github.com/javan/whenever) - let cron call back your Ruby code, trusted and reliable cron drives your schedule * [Clockwork](https://github.com/tomykaira/clockwork) - rufus-scheduler inspired gem * [Crono](https://github.com/plashchynski/crono) - an in-Rails cron scheduler @@ -369,10 +373,12 @@ Since, by default, jobs are triggered in their own new thread, job instances might overlap. For example, a job that takes 10 minutes and is scheduled every 7 minutes will have overlaps. To prevent overlap, one can set :overlap => false. Such a job will not trigger if one of its instance is already running. +The `:overlap` option is considered before the `:mutex` option when the scheduler is reviewing jobs for triggering. + ### :mutex => mutex_instance / mutex_name / array of mutexes When a job with a mutex triggers, the job's block is executed with the mutex around it, preventing other jobs with the same mutex to enter (it makes the other jobs wait until it exits the mutex). This is different from :overlap => false, which is, first, limited to instances of the same job, and, second, doesn't make the incoming job instance block/wait but give up. @@ -380,9 +386,11 @@ :mutex accepts a mutex instance or a mutex name (String). It also accept an array of mutex names / mutex instances. It allows for complex relations between jobs. Array of mutexes: original idea and implementation by [Rainux Luo](https://github.com/rainux) Warning: creating lots of different mutexes is OK. Rufus-scheduler will place them in its Scheduler#mutexes hash... And they won't get garbage collected. + +The `:overlap` option is considered before the `:mutex` option when the scheduler is reviewing jobs for triggering. ### :timeout => duration or point in time It's OK to specify a timeout when scheduling some work. After the time specified, it gets interrupted via a Rufus::Scheduler::TimeoutError.