README.md in sidekiq_portal-0.2.0 vs README.md in sidekiq_portal-0.3.0
- old
+ new
@@ -1,9 +1,13 @@
# Sidekiq::Portal [![Gem Version](https://badge.fury.io/rb/sidekiq_portal.svg)](https://badge.fury.io/rb/sidekiq_portal) [![Build Status](https://travis-ci.org/0exp/sidekiq_portal.svg?branch=master)](https://travis-ci.org/0exp/sidekiq_portal)
> hackaton slides: [link](https://github.com/0exp/sidekiq_portal/blob/master/docs/umbrellio_hackaton_v1.0.pdf)
+> meetup slides: [link](https://github.com/0exp/sidekiq_portal/blob/master/docs/sidekiq_portal_ruby_group_meetup.pdf)
+
+> meetup video: [link](https://youtu.be/H3SafkpBQ_w?t=12288)
+
**Sidekiq::Portal** - scheduled jobs runner for your test environments,
which execution process must occur during the `Timecop.travel(...)` operations according to the scheduler config.
Each job starts at the time it was supposed to start according to the scheduler plan -
the internal `Time.current` expression will give you exactly the scheduler-planned time.
@@ -29,21 +33,21 @@
gem 'sidekiq', '>= 5' # runtime dependency
gem 'timecop', '~> 0.9' # runtime dependency
group :test do
gem 'rspec'
- gem 'sidekiq-portal'
+ gem 'sidekiq_portal'
end
```
- run shell command:
```shell
bundle install
```
-- `scec_helper.rb`:
+- `spec_helper.rb`:
```ruby
require 'timecop' # runtime dependency
require 'sidekiq' # runtime dependency
require 'sidekiq/api'
@@ -68,14 +72,14 @@
config.default_timezone = 'UTC' # 'UTC' by default
config.retry_count = 3 # 0 by default
config.retry_on = [StandardError] # [StandardError] by default
# pre-defined sidekiq-scheduler configs (Rails example)
- config.scheduler_cofnig = Rails.application.config_for(:sidekiq)[:schedule]
+ config.scheduler_config = Rails.application.config_for(:sidekiq)[:schedule]
# manual sidekiq-scheduler configs
- config.schedluer_config = {
+ config.scheduler_config = {
LoolJob: { every: '15m' },
kek_job: { cron: '0 * * * * *', class: :KekJob }
}
end
@@ -148,18 +152,23 @@
- `Sidekiq::Testing.portal!` test mode with support for `:inline` and `:fake`;
(`Sidekiq::Testing.inline!` and `Sidekiq::Testing.fake` respectively);
- support for `ActiveSupport::TimeZone` instances in `default_timezone` config;
- rspec matchers;
-- `#reload!` should use previosly defined settings?;
+- `#reload!` should use previously defined settings?;
- support for `Sidekiq::Worker` job backend;
- support for `Sidekiq::Cron` scheduler plans;
- more specs;
- documentation and examples for instance-based portals (`Sidekiq::Portal.new(&configuration)`);
-- job execution randomization (for jobs which should be invoked at the same time);
-- configurable in-line invokations (with job list config);
-- configurable and conditional portal invokation (run over all specs or only over the one or etc)
+- configurable job execution randomization (for jobs which should be invoked at the same time)
+ (randomized invocation and not - at the same time or not);
+- configurable in-line invocations (with job list config);
+- configurable and conditional portal invocation (run over all specs or only over the one or etc)
(suitable for unit tests);
+- support for **Ruby 2.7**;
+- **Time** as external dependency;
+- getting rid of **ActiveSupport**'s **Time**-related core extensions;
+- better specs;
## License
Released under MIT License.