ATTN: This project uses semantic versioning.
- Finish fixing CVE-2022-44303, XSS in delayed_schedules by @PatrickTulskie in #783
- Fix json dump crasher with JSON 2.7.0+ by @PatrickTulskie in #781
- Fix for #761, reflected XSS in delayed_schedules.erb by @PatrickTulskie in #780
- Add logfmt option for logging output (#763)
- Rubocop Fixes (#771)
- Adding batching to re-queuing for timestamp by @brennen-stripe in #767
- Use non-deprecated form of Redis.sadd/srem by @irvingreid in #752
- Prompt for confirmation on 'Clear Delayed Jobs' by @mishina2228 in #754
- Address some deprecation warnings in the test suite and with srem/lrem pipelined usage by @PatrickTulskie in #770
- Update CI matrix and fix tests by @mishina2228 in #766
- Replace deprecated Socket.gethostname with Addrinfo.getaddrinfo to fix deprecation warnings (#753)
- Fix tests for redis-rb 5.0 (#757)
- Use Resque::DataStore#reconnect for redis-rb 5.0 compat (#757)
- Test suite runs
flushall
to prevent flakiness (#757)
- Remove support for Ruby < 2.3
- Configuration to use a set of truthy values to enable boolean settings instead of simply existence
- Add
delay_or_enqueue_at
for delaying existing jobs or creating a new job(#645) - Fix deprecated uses of Redis#pipelined
- Fix reading configuration from environment for boolean values (#735)
- Unblock rufus-scheduler lock on lower than 3.7 by fixing scheduler shutdown (#736)
- Removed testing against jruby (resque doesn't test against jruby)
4.5.0 - 2021-09-25
- Support Ruby 3
- Add optional argument to
remove_schedule
to control reloading of the schedule
- Fix XSS vulnerability on the
/delayed/search
page - Ensure that jobs are directly created for jobs enqueued at
Time.now
- Fix queuing to custom job queues in
enqueue_delayed_selection
- Ensure
before_enqueue
andafter_enqueue
callbacks are called in all cases of queuing a job - Fix redis error when running resque-scheduler without Redis
- Change CI from Travis to GitHub Actions
- Only allow rufus-scheduler versions lower than 3.7
- Update vagrant configuration
4.4.0 - 2019-04-11
- Support Resque 2
- Support redis-rb 4
- Support Ruby 2.5
- Redis timeouts no longer crash the scheduler process
- Fix race condition when running multiple schedulers
- Fix setting the
poll_sleep_amount
option - Escape class names in resque-web /delayed URLs
- Addressed redis-namespace deprecation warnings
- Ensure
enqueue_in
args are Numeric, catching a common issue passingActiveSupport::Duration
4.3.1 - 2017-11-20
- Add support and testing for ruby 2.4
- Change log format and file name
- Drop testing on ruby 1.9.3
Lock::Resilient
: Refresh lua script sha if it does not exist in redis server
- Reporting version via
resque-scheduler --version
- Class name escaping in
/delayed
view
4.3.0 - 2016-06-26
- Windows testing on Appveyor
- Code of Conduct
- Silence output by default when daemonizing
- Update vagrant setup
- Update gem metadata per latest Bundler defaults
4.2.1 - 2016-06-08
- Docs improvements
- Optimization of
find_delayed_selection
- More defensive code around redis disconnects
- Only trap existing signals on given platform
- RuboCop auto-fixes
- Dependency updates
4.2.0 - 2016-04-29
- Index column to scheduler tab
- Failure hook support for better extensibility
- Clean up and simplify the scheduling extension
- Make
Resque::Scheduler.logger
accessible to user - Default failure handler now outputs stacktrace
- Update rufus-scheduler
- Displaying schedules appropriate to the
env
in scheduler UI - A race condition in concurrent restarts
4.1.0 - 2016-02-10
- View helper to cut down on repetition
Resque.(find|enqueue)_delayed_selection
methods to complementResque.remove_delayed_selection
- Leave undefined env vars unset in internal options hash
- Insulate checking
Rails.env
- Documentation updates and typo fixes
- Check thread life only if present
4.0.0 - 2014-12-21
- Show current master in the web UI
- Bump rufus-scheduler dependency to
~> 3.0
- Address warning from redis-namespace related to
#unwatch
- Documentation updates
- Bugfix related to schedule check when no jobs are in the queue
3.1.0 - 2014-12-21
- Note in README.md about production redis deployment configuration
- Better PID file cleanup
- Option to filter by job class in
Resque.remove_delayed_selection
- Tell-don't-ask with
Resque.schedule
to enable atomic clear & set
- Avoid use of redis
KEYS
command inResque.remove_delayed_selection
- Only release master lock if it belongs to us
- Only override configuration options if provided
3.0.0 - 2014-05-27
- Vagrant setup
- Support for last execution information through the web
- CodeClimate integration
Resque.delayed?
andResque.next_delayed_schedule
- Allow scheduled jobs to be deleted via resque web
- The grand re-namespacing of
resque_scheduler/(.*)
=>resque/scheduler/\1
- "Refactoring"
- Cleanup of a ton of rubocop offenses
- Documentation updates
- Handling signals while "sleeping" by relying on
Thread#wakeup
- Testing against same rubies as resque (+ 2.1.1)
- Renamed
Resque.set_last_run
toResque.last_enqueued_at
- Duplicated layout for
search_form
partial template. - Issue where Web UI was ONLY showing jobs that only run in the current environment
2.5.5 - 2014-02-27
- Only showing link to job with args if job is present
- Only showing scheduled jobs that match current env or omit env
- Ensuring lock and acquire lua scripts are refreshed on timeout change
- Switch to using
mono_logger
instead of stdliblogger
2.5.4 - 2014-02-17
- Documentation updates
2.5.3 - 2014-02-12
- Handling signals during poll sleep
2.5.2 - 2014-02-11
- Pinning down dependency versions more tightly
2.5.1 - 2014-02-09
- Make signal handling (really) Ruby 2 compatible
2.5.0 - 2014-02-09
- Search feature to the Delayed tab in Resque Web
- Use
logger.error
when logging errors fromhandle_errors
- Confusion with redis version requirements in
README.md
2.4.0 - 2014-01-14
- Including optional env and app names in procline
- A standalone
resque-scheduler
executable - Support for persistence of dynamic schedules
.configure
convenience method for block-style configuration.remove_delayed_selection
method to remove based on result of a block- Support for viewing all schedules for a job in web UI
- Bumping the copyright year
- Corrected doc for syntax of class and every keys
- Use resque redis namespace in the master lock key
- Various test improvements, 🐛 fixes, and documentation updates!
- POSSIBLE BREAKING CHANGE: Dropping support for ree
- An explosion regarding
every
in the views - Unsafe shutdown in Ruby 2
require_paths
in gemspec
- Add rufus scheduler
every
notice to README - Specify MIT license in gemspec
- BREAKING CHANGE: Added
RESQUE_SCHEDULER_INTERVAL
in place ofINTERVAL
- Use
Float()
instead ofInteger()
to calculate poll sleep amount - Upgraded dependence of Resque to support 1.25
- Use
Resque.validate
instead of custom.validate_job!
- Re-introduced
ThreadError
on Ruby 2
- Support for parameterized resque jobs.
- Allowing prefix for
master_lock_key
. Resque.clean_schedules
method, which is useful when setting up the scheduler for the first time.
- Locking rufus-scheduler dependency to
~> 2.0
- Updated redis dependency to
>= 3.0.0
- Bug fixes related to first time schedule retrieval and missing schedules.
- Add
#scheduled_at
which returns an array of timestamps at which the specified job is scheduled - Add
#enqueue_delayed
for enqueueing specific delayed jobs immediately - Show server local time in resque-web
- Add support for configuring
Resque::Scheduler.poll_sleep_amount
via theINTERVAL
environmental variable.
- Locking to resque < 1.25.0 (for now)
- Syncing stdout/stderr
- Using a logger instead of
#puts
, configurable viaLOGFILE
,VERBOSE
, andMUTE
environmental variables, as well as being settable viaResque::Scheduler#logger
- Enqueue immediately if job is being enqueued in the past
- Dependency on
Resque::Helpers
- Ensuring
Resque.schedule=
sets rather than appends - Process daemonization fixes including stdio redirection and redis client reconnection
- Scheduler template when arrays are passed to rufus-scheduler
- Fixed shutdown in ruby 2.0.0
2.0.1 - 2013-03-20
- Locking to support master failover
- Allow custom job classes to be used in
Resque.enqueue_at
- Allowing
#enqueue_at
to call#scheduled
whenResque.inline
istrue
- More efficient
#remove_delayed
implementation
2.0.0 - 2012-05-04
- Support for Resque.inline configuration (carlosantoniodasilva)
- Possible job loss race condition around deleting delayed queues and enqueuing a job 0 seconds in the future.
2.0.0.h - 2012-03-19
- Plugin support with hooks (andreas)
2.0.0.f - 2011-11-03
- Support
ENV['BACKGROUND']
flag for daemonizing (bernerdschaefer) - Added support for
before_schedule
andafter_schedule
hooks (yaauie) - Added
remove_delayed_job_from_timestamp
to remove delayed jobs from a given timestamp.
- Address race condition with delayed jobs (using redis transactions)
2.0.0.e - 2011-09-16
enqueue_at_with_queue
/enqueue_in_with_queue
support (niralisse)Resque::Scheduler.poll_sleep_amount
to allow for configuring the sleep time b/w delayed queue polls.- "Clear Delayed Jobs" button to the Delayed Jobs page (john-griffin)
- Pagination issue on the Delayed tab
2.0.0.d - 2011-04-04
- Porting bug fixes from v1.9-stable
2.0.0.c - 2011-03-25
- Rake task drop a pid file (sreeix)
2.0.0.b - 2011-02-25
- Bugs
- Dynamic schedule support (brianjlandau, davidyang)
- Now depends on redis >=1.3
1.9.11 - 2013-11-20
- Behavior of
#validate_job!
via#enqueue_at_with_queue
#286 require_paths
in gemspec #288
1.9.10 - 2013-09-19
- Backported
#enqueue_at_with_queue
- Locking to resque < 1.25.0
- Ruby 1.8 compatibility in scheduler tab when schedule keys are symbols
- Mocha setup compatibility
1.9.9 - 2011-03-29
- Compatibility with resque 1.15.0
1.9.8 - 2011-01-14
- Validates delayed jobs prior to insertion into the delayed queue (bogdan)
- Rescue exceptions that occur during queuing and log them (dgrijalva)
1.9.7 - 2010-11-09
- Support for rufus-scheduler "every" syntax (fallwith)
- Ability to pass a Time to
handle_delayed_items
for testing/staging (rcarver)
1.9.6 - 2010-10-08
- Support for custom job classes (like resque-status) (mattetti)
1.9.5 - 2010-09-09
- Updated scheduler rake task to allow for an alternate setup task to avoid loading the entire stack. (chewbranca)
- Sig issue on win32 (#25)
1.9.4 - 2010-07-29
- Ability to remove jobs from delayed queue (joshsz)
- Issue #23 (removing .present? reference)
1.9.3 - 2010-07-07
- Bug fix (#19)
1.9.2 - 2010-06-16
- Issue with redis gem 2.0.1 and redis server 1.2.6 (dbackeus)
1.9.1 - 2010-06-04
- Issue with redis server 1.2.6 and redis gem 2.0.1
1.9.0 - 2010-06-04
- Redis 2.0 support (bpo)
1.8.2 - 2010-06-04
- Queue now functionality to delayed timestamps (daviddoan)
1.8.1 - 2010-05-19
rails_env
for scheduled jobs to support scoping jobs byRAILS_ENV
(gravis).- Adding gemspec for bundler support.
- Ruby 1.8.6 compatibility issue.
1.8.0 - 2010-04-14
- Tests for resque-web (gravis)
- Moving version to match corresponding resque version
- Sorting schedule on Scheduler tab
1.0.5 - 2010-03-01
- Support for overriding queue from schedule config.
- The queue is now stored with the job and arguments in the delayed queue so there is no longer a need for the scheduler to load job classes to introspect the queue.
- resque-web dependency on loading the job classes for "Queue Now", provided "queue" is specified in the schedule.
1.0.4 - 2010-02-26
- Support for specifying the queue to put the job onto. This allows for you to have one job that can go onto multiple queues and be able to schedule jobs without having to load the job classes.
1.0.3 - 2010-02-11
- Support for scheduled jobs with empty crons. This is helpful to have jobs that you don't want on a schedule, but do want to be able to queue by clicking a button.
1.0.2 - 2010-02-10
- Delayed Job tab to display job details if only 1 job exists for a given timestamp
1.0.1 - 2010-02-01
- Delayed jobs close together resulted in a 5 second sleep
1.0.0 - 2009-12-21
- Initial release