sidekiq-scheduler-notification 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/workflows/test.yml +33 -0
- data/Gemfile +3 -0
- data/README.md +9 -3
- data/lib/sidekiq/middleware/server/slack_notification.rb +4 -3
- data/lib/sidekiq/scheduler/notification/version.rb +2 -2
- data/lib/sidekiq/scheduler/notification.rb +6 -14
- data/sidekiq-scheduler-notification.gemspec +3 -7
- metadata +11 -54
- data/.travis.yml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f76f433968aaa90efef0b3fe962831b4f2fd3da3bad196c253e880b349c2b76c
|
4
|
+
data.tar.gz: cb868e41b8ef1171867b25f16996d57e5f696d97cd99096d3626de10b235d642
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 565f5bdda7638644bfa1b6e576aa7b2d38a4c399e912b65c0d668b2bd385cf881a717e10185388c4f8faa2c14923dd2380dc8fb259a9d10e6b7158c28f009dbe
|
7
|
+
data.tar.gz: 6e9c8d2273fe45014af06989e503461fc2d0d8ea098331224de4f83edbc256100abead2e59324d0d1b06daae20cdff124fd0ad90658a0dce3496cddf3fd5ae8b
|
@@ -0,0 +1,33 @@
|
|
1
|
+
name: test
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ "master" ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ "master" ]
|
8
|
+
|
9
|
+
permissions:
|
10
|
+
contents: read
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
test:
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
strategy:
|
16
|
+
matrix:
|
17
|
+
ruby-version: ['2.6', '2.7', '3.0', '3.1', head]
|
18
|
+
|
19
|
+
services:
|
20
|
+
redis:
|
21
|
+
image: redis
|
22
|
+
ports:
|
23
|
+
- 6379:6379
|
24
|
+
|
25
|
+
steps:
|
26
|
+
- uses: actions/checkout@v3
|
27
|
+
- name: Set up Ruby
|
28
|
+
uses: ruby/setup-ruby@v1
|
29
|
+
with:
|
30
|
+
ruby-version: ${{ matrix.ruby-version }}
|
31
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
32
|
+
- name: Run tests
|
33
|
+
run: bundle exec rake
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -23,10 +23,10 @@ Or install it yourself as:
|
|
23
23
|
Added following configuration to initializer like `config/initializer/sidekiq.rb`
|
24
24
|
|
25
25
|
```rb
|
26
|
-
|
26
|
+
SidekiqScheduler::Scheduler.notify_webhook = "https://hooks.slack.com/services/xxx/yyyzzz"
|
27
27
|
```
|
28
28
|
|
29
|
-
and append `notification` variable like this
|
29
|
+
and append `notification` variable into `schedule.yml` used by sidekiq-scheduler. like this
|
30
30
|
|
31
31
|
```yaml
|
32
32
|
NotificationJob:
|
@@ -34,7 +34,13 @@ NotificationJob:
|
|
34
34
|
notification: true
|
35
35
|
```
|
36
36
|
|
37
|
-
You can
|
37
|
+
Finally, You need to load `schedule.yml` at first before loading to this gem. You can add to read schedule.yml to sidekiq startup hook.
|
38
|
+
|
39
|
+
```rb
|
40
|
+
Sidekiq.options[:lifecycle_events][:startup].unshift -> {
|
41
|
+
Sidekiq.schedule = YAML.load_file(File.expand_path("../../../config/scheduler.yml",__FILE__))
|
42
|
+
}
|
43
|
+
```
|
38
44
|
|
39
45
|
## Development
|
40
46
|
|
@@ -5,9 +5,10 @@ module Sidekiq
|
|
5
5
|
module Server
|
6
6
|
class SlackNotification
|
7
7
|
def call(_worker, job, _queue)
|
8
|
-
if
|
9
|
-
notifier ||= Slack::Notifier.new(
|
10
|
-
|
8
|
+
if SidekiqScheduler::Scheduler.notify_classes.include? job['wrapped']
|
9
|
+
notifier ||= Slack::Notifier.new(SidekiqScheduler::Scheduler.notify_webhook) do
|
10
|
+
defaults username: 'Sidekiq Notification'
|
11
|
+
end
|
11
12
|
begin
|
12
13
|
notifier.ping "Start : #{job['wrapped']}"
|
13
14
|
yield
|
@@ -2,7 +2,7 @@ require 'sidekiq-scheduler'
|
|
2
2
|
require 'sidekiq/middleware/server/slack_notification'
|
3
3
|
require 'sidekiq/scheduler/notification/version'
|
4
4
|
|
5
|
-
module
|
5
|
+
module SidekiqScheduler
|
6
6
|
class Scheduler
|
7
7
|
class << self
|
8
8
|
attr_accessor :notify_classes, :notify_webhook
|
@@ -11,23 +11,15 @@ module Sidekiq
|
|
11
11
|
end
|
12
12
|
|
13
13
|
module SidekiqSchedulerNotification
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
Sidekiq::Scheduler.notify_classes = Sidekiq.schedule.select{|_,v| v["notification"] }.map{|k,_| k}
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.prepended(base)
|
24
|
-
class << base
|
25
|
-
prepend ClassMethods
|
14
|
+
def load_schedule!
|
15
|
+
super
|
16
|
+
if Sidekiq.schedule
|
17
|
+
SidekiqScheduler::Scheduler.notify_classes = Sidekiq.schedule.select{|_,v| v["notification"] }.map{|k,_| k}
|
26
18
|
end
|
27
19
|
end
|
28
20
|
end
|
29
21
|
|
30
|
-
|
22
|
+
SidekiqScheduler::Scheduler.prepend SidekiqSchedulerNotification
|
31
23
|
|
32
24
|
Sidekiq.configure_server do |config|
|
33
25
|
config.server_middleware do |chain|
|
@@ -5,7 +5,7 @@ require 'sidekiq/scheduler/notification/version'
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "sidekiq-scheduler-notification"
|
8
|
-
spec.version =
|
8
|
+
spec.version = SidekiqScheduler::Scheduler::Notification::VERSION
|
9
9
|
spec.authors = ["SHIBATA Hiroshi"]
|
10
10
|
spec.email = ["hsbt@ruby-lang.org"]
|
11
11
|
|
@@ -19,10 +19,6 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_dependency 'sidekiq-scheduler'
|
23
|
-
spec.add_dependency 'slack-notifier'
|
24
|
-
|
25
|
-
spec.add_development_dependency "bundler"
|
26
|
-
spec.add_development_dependency "rake"
|
27
|
-
spec.add_development_dependency "minitest"
|
22
|
+
spec.add_dependency 'sidekiq-scheduler', '>= 3'
|
23
|
+
spec.add_dependency 'slack-notifier', '>= 2'
|
28
24
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-scheduler-notification
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SHIBATA Hiroshi
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sidekiq-scheduler
|
@@ -16,70 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: slack-notifier
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: bundler
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rake
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: minitest
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
40
|
+
version: '2'
|
83
41
|
description: Slack notification middleware for sidekiq-scheduler
|
84
42
|
email:
|
85
43
|
- hsbt@ruby-lang.org
|
@@ -87,8 +45,8 @@ executables: []
|
|
87
45
|
extensions: []
|
88
46
|
extra_rdoc_files: []
|
89
47
|
files:
|
48
|
+
- ".github/workflows/test.yml"
|
90
49
|
- ".gitignore"
|
91
|
-
- ".travis.yml"
|
92
50
|
- Gemfile
|
93
51
|
- LICENSE.txt
|
94
52
|
- README.md
|
@@ -103,7 +61,7 @@ homepage: https://github.com/hsbt/sidekiq-scheduler-notification
|
|
103
61
|
licenses:
|
104
62
|
- MIT
|
105
63
|
metadata: {}
|
106
|
-
post_install_message:
|
64
|
+
post_install_message:
|
107
65
|
rdoc_options: []
|
108
66
|
require_paths:
|
109
67
|
- lib
|
@@ -118,9 +76,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
76
|
- !ruby/object:Gem::Version
|
119
77
|
version: '0'
|
120
78
|
requirements: []
|
121
|
-
|
122
|
-
|
123
|
-
signing_key:
|
79
|
+
rubygems_version: 3.4.0.dev
|
80
|
+
signing_key:
|
124
81
|
specification_version: 4
|
125
82
|
summary: Slack notification middleware for sidekiq-scheduler
|
126
83
|
test_files: []
|