riverqueue 0.11.0 → 0.13.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.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +182 -0
  3. data/LICENSE +374 -0
  4. data/README.md +22 -0
  5. data/docs/README.md +812 -0
  6. data/docs/conformance.md +72 -0
  7. data/docs/migrations.md +118 -0
  8. data/docs/testing.md +173 -0
  9. data/docs/workers.md +126 -0
  10. data/exe/river +7 -0
  11. data/lib/cli.rb +55 -0
  12. data/lib/client.rb +347 -54
  13. data/lib/client_runtime.rb +721 -0
  14. data/lib/config.rb +154 -0
  15. data/lib/driver/job_row_decoder.rb +85 -0
  16. data/lib/driver/postgres_capabilities.rb +41 -0
  17. data/lib/driver/runtime.rb +772 -0
  18. data/lib/driver.rb +13 -6
  19. data/lib/errors.rb +83 -0
  20. data/lib/event.rb +85 -0
  21. data/lib/insert_opts.rb +46 -12
  22. data/lib/job.rb +28 -13
  23. data/lib/job_persisted_logging/plugin.rb +108 -0
  24. data/lib/migration_cli.rb +90 -0
  25. data/lib/migrator.rb +189 -0
  26. data/lib/params.rb +96 -0
  27. data/lib/periodic_cron.rb +59 -0
  28. data/lib/periodic_job.rb +143 -0
  29. data/lib/resumable.rb +148 -0
  30. data/lib/riverqueue/testing/minitest.rb +18 -0
  31. data/lib/riverqueue/testing/rspec.rb +109 -0
  32. data/lib/riverqueue/testing.rb +134 -0
  33. data/lib/riverqueue.rb +16 -0
  34. data/lib/unique_args.rb +97 -0
  35. data/lib/unique_bitmask.rb +14 -12
  36. data/lib/worker.rb +152 -0
  37. data/lib/worker_runner.rb +106 -0
  38. data/migration/LICENSE +374 -0
  39. data/migration/README.md +13 -0
  40. data/migration/manifest.json +37 -0
  41. data/migration/postgresql/main/001_create_river_migration.down.sql +1 -0
  42. data/migration/postgresql/main/001_create_river_migration.up.sql +8 -0
  43. data/migration/postgresql/main/002_initial_schema.down.sql +5 -0
  44. data/migration/postgresql/main/002_initial_schema.up.sql +96 -0
  45. data/migration/postgresql/main/003_river_job_tags_non_null.down.sql +3 -0
  46. data/migration/postgresql/main/003_river_job_tags_non_null.up.sql +3 -0
  47. data/migration/postgresql/main/004_pending_and_more.down.sql +42 -0
  48. data/migration/postgresql/main/004_pending_and_more.up.sql +45 -0
  49. data/migration/postgresql/main/005_migration_unique_client.down.sql +57 -0
  50. data/migration/postgresql/main/005_migration_unique_client.up.sql +79 -0
  51. data/migration/postgresql/main/006_bulk_unique.down.sql +16 -0
  52. data/migration/postgresql/main/006_bulk_unique.up.sql +40 -0
  53. data/migration/postgresql/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.down.sql +56 -0
  54. data/migration/postgresql/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.up.sql +44 -0
  55. data/migration/postgresql/main/008_job_id_autoincrement.down.sql +3 -0
  56. data/migration/postgresql/main/008_job_id_autoincrement.up.sql +3 -0
  57. data/migration/sqlite/main/001_create_river_migration.down.sql +1 -0
  58. data/migration/sqlite/main/001_create_river_migration.up.sql +8 -0
  59. data/migration/sqlite/main/002_initial_schema.down.sql +8 -0
  60. data/migration/sqlite/main/002_initial_schema.up.sql +19 -0
  61. data/migration/sqlite/main/003_river_job_tags_non_null.down.sql +6 -0
  62. data/migration/sqlite/main/003_river_job_tags_non_null.up.sql +6 -0
  63. data/migration/sqlite/main/004_pending_and_more.down.sql +26 -0
  64. data/migration/sqlite/main/004_pending_and_more.up.sql +33 -0
  65. data/migration/sqlite/main/005_migration_unique_client.down.sql +37 -0
  66. data/migration/sqlite/main/005_migration_unique_client.up.sql +64 -0
  67. data/migration/sqlite/main/006_bulk_unique.down.sql +7 -0
  68. data/migration/sqlite/main/006_bulk_unique.up.sql +63 -0
  69. data/migration/sqlite/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.down.sql +255 -0
  70. data/migration/sqlite/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.up.sql +261 -0
  71. data/migration/sqlite/main/008_job_id_autoincrement.down.sql +121 -0
  72. data/migration/sqlite/main/008_job_id_autoincrement.up.sql +123 -0
  73. data/sig/client.rbs +98 -0
  74. data/sig/driver.rbs +172 -0
  75. data/sig/insert_opts.rbs +25 -0
  76. data/sig/job.rbs +74 -0
  77. data/sig/job_persisted_logging/plugin.rbs +29 -0
  78. data/sig/migrator.rbs +44 -0
  79. data/sig/riverqueue.rbs +2 -0
  80. data/sig/runtime.rbs +402 -0
  81. data/sig/testing.rbs +95 -0
  82. data/sig/unique_args.rbs +8 -0
  83. data/sig/unique_bitmask.rbs +8 -0
  84. data/sig/worker_runner.rbs +22 -0
  85. metadata +170 -13
metadata CHANGED
@@ -1,37 +1,194 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riverqueue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Blake Gentry
8
8
  - Brandur Leach
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
11
  date: 1980-01-02 00:00:00.000000000 Z
12
- dependencies: []
13
- description: River is a fast job queue for Go. Use this gem in conjunction with gems
14
- riverqueue-activerecord or riverqueue-sequel to insert jobs in Ruby which will be
15
- worked from Go.
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: logger
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '1000'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">"
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '1000'
33
+ - !ruby/object:Gem::Dependency
34
+ name: optparse
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">"
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '1000'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">"
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '1000'
53
+ - !ruby/object:Gem::Dependency
54
+ name: securerandom
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">"
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '1000'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">"
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '1000'
73
+ - !ruby/object:Gem::Dependency
74
+ name: timeout
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">"
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '1000'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '1000'
93
+ description: Insert and work River jobs in Ruby using the same schema and state machine
94
+ as River's Go client. Use with riverqueue-activerecord or riverqueue-sequel.
16
95
  email: brandur@brandur.org
17
- executables: []
96
+ executables:
97
+ - river
18
98
  extensions: []
19
99
  extra_rdoc_files: []
20
100
  files:
101
+ - CHANGELOG.md
102
+ - LICENSE
103
+ - README.md
104
+ - docs/README.md
105
+ - docs/conformance.md
106
+ - docs/migrations.md
107
+ - docs/testing.md
108
+ - docs/workers.md
109
+ - exe/river
110
+ - lib/cli.rb
21
111
  - lib/client.rb
112
+ - lib/client_runtime.rb
113
+ - lib/config.rb
22
114
  - lib/driver.rb
115
+ - lib/driver/job_row_decoder.rb
116
+ - lib/driver/postgres_capabilities.rb
117
+ - lib/driver/runtime.rb
118
+ - lib/errors.rb
119
+ - lib/event.rb
23
120
  - lib/insert_opts.rb
24
121
  - lib/job.rb
122
+ - lib/job_persisted_logging/plugin.rb
123
+ - lib/migration_cli.rb
124
+ - lib/migrator.rb
125
+ - lib/params.rb
126
+ - lib/periodic_cron.rb
127
+ - lib/periodic_job.rb
128
+ - lib/resumable.rb
25
129
  - lib/riverqueue.rb
130
+ - lib/riverqueue/testing.rb
131
+ - lib/riverqueue/testing/minitest.rb
132
+ - lib/riverqueue/testing/rspec.rb
133
+ - lib/unique_args.rb
26
134
  - lib/unique_bitmask.rb
135
+ - lib/worker.rb
136
+ - lib/worker_runner.rb
137
+ - migration/LICENSE
138
+ - migration/README.md
139
+ - migration/manifest.json
140
+ - migration/postgresql/main/001_create_river_migration.down.sql
141
+ - migration/postgresql/main/001_create_river_migration.up.sql
142
+ - migration/postgresql/main/002_initial_schema.down.sql
143
+ - migration/postgresql/main/002_initial_schema.up.sql
144
+ - migration/postgresql/main/003_river_job_tags_non_null.down.sql
145
+ - migration/postgresql/main/003_river_job_tags_non_null.up.sql
146
+ - migration/postgresql/main/004_pending_and_more.down.sql
147
+ - migration/postgresql/main/004_pending_and_more.up.sql
148
+ - migration/postgresql/main/005_migration_unique_client.down.sql
149
+ - migration/postgresql/main/005_migration_unique_client.up.sql
150
+ - migration/postgresql/main/006_bulk_unique.down.sql
151
+ - migration/postgresql/main/006_bulk_unique.up.sql
152
+ - migration/postgresql/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.down.sql
153
+ - migration/postgresql/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.up.sql
154
+ - migration/postgresql/main/008_job_id_autoincrement.down.sql
155
+ - migration/postgresql/main/008_job_id_autoincrement.up.sql
156
+ - migration/sqlite/main/001_create_river_migration.down.sql
157
+ - migration/sqlite/main/001_create_river_migration.up.sql
158
+ - migration/sqlite/main/002_initial_schema.down.sql
159
+ - migration/sqlite/main/002_initial_schema.up.sql
160
+ - migration/sqlite/main/003_river_job_tags_non_null.down.sql
161
+ - migration/sqlite/main/003_river_job_tags_non_null.up.sql
162
+ - migration/sqlite/main/004_pending_and_more.down.sql
163
+ - migration/sqlite/main/004_pending_and_more.up.sql
164
+ - migration/sqlite/main/005_migration_unique_client.down.sql
165
+ - migration/sqlite/main/005_migration_unique_client.up.sql
166
+ - migration/sqlite/main/006_bulk_unique.down.sql
167
+ - migration/sqlite/main/006_bulk_unique.up.sql
168
+ - migration/sqlite/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.down.sql
169
+ - migration/sqlite/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.up.sql
170
+ - migration/sqlite/main/008_job_id_autoincrement.down.sql
171
+ - migration/sqlite/main/008_job_id_autoincrement.up.sql
172
+ - sig/client.rbs
173
+ - sig/driver.rbs
174
+ - sig/insert_opts.rbs
175
+ - sig/job.rbs
176
+ - sig/job_persisted_logging/plugin.rbs
177
+ - sig/migrator.rbs
178
+ - sig/riverqueue.rbs
179
+ - sig/runtime.rbs
180
+ - sig/testing.rbs
181
+ - sig/unique_args.rbs
182
+ - sig/unique_bitmask.rbs
183
+ - sig/worker_runner.rbs
27
184
  homepage: https://riverqueue.com
28
185
  licenses:
29
- - LGPL-3.0-or-later
186
+ - MPL-2.0
30
187
  metadata:
31
- bug_tracker_uri: https://github.com/riverqueue/riverqueue-ruby/issues
32
- changelog_uri: https://github.com/riverqueue/riverqueue-ruby/blob/master/CHANGELOG.md
188
+ bug_tracker_uri: https://github.com/riverqueue/river/issues
189
+ changelog_uri: https://github.com/riverqueue/river/blob/master/ruby/CHANGELOG.md
33
190
  rubygems_mfa_required: 'true'
34
- source_code_uri: https://github.com/riverqueue/riverqueue-ruby
191
+ source_code_uri: https://github.com/riverqueue/river/tree/master/ruby
35
192
  rdoc_options: []
36
193
  require_paths:
37
194
  - lib
@@ -39,7 +196,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
39
196
  requirements:
40
197
  - - ">="
41
198
  - !ruby/object:Gem::Version
42
- version: '0'
199
+ version: '3.2'
43
200
  required_rubygems_version: !ruby/object:Gem::Requirement
44
201
  requirements:
45
202
  - - ">="
@@ -48,5 +205,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
48
205
  requirements: []
49
206
  rubygems_version: 4.0.9
50
207
  specification_version: 4
51
- summary: River is a fast job queue for Go.
208
+ summary: A fast, reliable job queue for Ruby backed by PostgreSQL or SQLite.
52
209
  test_files: []