riverqueue 0.11.0 → 0.12.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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +132 -0
  3. data/LICENSE +374 -0
  4. data/docs/README.md +765 -0
  5. data/docs/migrations.md +121 -0
  6. data/docs/testing.md +173 -0
  7. data/docs/workers.md +126 -0
  8. data/exe/river +7 -0
  9. data/lib/cli.rb +55 -0
  10. data/lib/client.rb +314 -54
  11. data/lib/client_runtime.rb +612 -0
  12. data/lib/config.rb +154 -0
  13. data/lib/driver/job_row_decoder.rb +85 -0
  14. data/lib/driver/postgres_capabilities.rb +41 -0
  15. data/lib/driver/runtime.rb +661 -0
  16. data/lib/driver.rb +13 -6
  17. data/lib/errors.rb +83 -0
  18. data/lib/event.rb +78 -0
  19. data/lib/insert_opts.rb +40 -11
  20. data/lib/job.rb +28 -13
  21. data/lib/job_persisted_logging/plugin.rb +108 -0
  22. data/lib/migration_cli.rb +90 -0
  23. data/lib/migrator.rb +189 -0
  24. data/lib/params.rb +96 -0
  25. data/lib/periodic_cron.rb +24 -0
  26. data/lib/periodic_job.rb +135 -0
  27. data/lib/resumable.rb +148 -0
  28. data/lib/riverqueue/testing/minitest.rb +18 -0
  29. data/lib/riverqueue/testing/rspec.rb +109 -0
  30. data/lib/riverqueue/testing.rb +134 -0
  31. data/lib/riverqueue.rb +16 -0
  32. data/lib/unique_args.rb +97 -0
  33. data/lib/unique_bitmask.rb +14 -12
  34. data/lib/worker.rb +152 -0
  35. data/lib/worker_runner.rb +106 -0
  36. data/migration/LICENSE +374 -0
  37. data/migration/README.md +11 -0
  38. data/migration/manifest.json +38 -0
  39. data/migration/postgresql/main/001_create_river_migration.down.sql +1 -0
  40. data/migration/postgresql/main/001_create_river_migration.up.sql +8 -0
  41. data/migration/postgresql/main/002_initial_schema.down.sql +5 -0
  42. data/migration/postgresql/main/002_initial_schema.up.sql +96 -0
  43. data/migration/postgresql/main/003_river_job_tags_non_null.down.sql +3 -0
  44. data/migration/postgresql/main/003_river_job_tags_non_null.up.sql +3 -0
  45. data/migration/postgresql/main/004_pending_and_more.down.sql +42 -0
  46. data/migration/postgresql/main/004_pending_and_more.up.sql +45 -0
  47. data/migration/postgresql/main/005_migration_unique_client.down.sql +57 -0
  48. data/migration/postgresql/main/005_migration_unique_client.up.sql +79 -0
  49. data/migration/postgresql/main/006_bulk_unique.down.sql +16 -0
  50. data/migration/postgresql/main/006_bulk_unique.up.sql +40 -0
  51. data/migration/postgresql/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.down.sql +56 -0
  52. data/migration/postgresql/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.up.sql +44 -0
  53. data/migration/postgresql/main/008_job_id_autoincrement.down.sql +3 -0
  54. data/migration/postgresql/main/008_job_id_autoincrement.up.sql +3 -0
  55. data/migration/sqlite/main/001_create_river_migration.down.sql +1 -0
  56. data/migration/sqlite/main/001_create_river_migration.up.sql +8 -0
  57. data/migration/sqlite/main/002_initial_schema.down.sql +8 -0
  58. data/migration/sqlite/main/002_initial_schema.up.sql +19 -0
  59. data/migration/sqlite/main/003_river_job_tags_non_null.down.sql +6 -0
  60. data/migration/sqlite/main/003_river_job_tags_non_null.up.sql +6 -0
  61. data/migration/sqlite/main/004_pending_and_more.down.sql +26 -0
  62. data/migration/sqlite/main/004_pending_and_more.up.sql +33 -0
  63. data/migration/sqlite/main/005_migration_unique_client.down.sql +37 -0
  64. data/migration/sqlite/main/005_migration_unique_client.up.sql +64 -0
  65. data/migration/sqlite/main/006_bulk_unique.down.sql +7 -0
  66. data/migration/sqlite/main/006_bulk_unique.up.sql +63 -0
  67. data/migration/sqlite/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.down.sql +255 -0
  68. data/migration/sqlite/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.up.sql +261 -0
  69. data/migration/sqlite/main/008_job_id_autoincrement.down.sql +121 -0
  70. data/migration/sqlite/main/008_job_id_autoincrement.up.sql +123 -0
  71. data/sig/client.rbs +95 -0
  72. data/sig/driver.rbs +170 -0
  73. data/sig/insert_opts.rbs +25 -0
  74. data/sig/job.rbs +72 -0
  75. data/sig/job_persisted_logging/plugin.rbs +29 -0
  76. data/sig/migrator.rbs +44 -0
  77. data/sig/riverqueue.rbs +2 -0
  78. data/sig/runtime.rbs +382 -0
  79. data/sig/testing.rbs +95 -0
  80. data/sig/unique_args.rbs +8 -0
  81. data/sig/unique_bitmask.rbs +8 -0
  82. data/sig/worker_runner.rbs +22 -0
  83. metadata +165 -10
metadata CHANGED
@@ -1,32 +1,187 @@
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.12.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
+ - docs/README.md
104
+ - docs/migrations.md
105
+ - docs/testing.md
106
+ - docs/workers.md
107
+ - exe/river
108
+ - lib/cli.rb
21
109
  - lib/client.rb
110
+ - lib/client_runtime.rb
111
+ - lib/config.rb
22
112
  - lib/driver.rb
113
+ - lib/driver/job_row_decoder.rb
114
+ - lib/driver/postgres_capabilities.rb
115
+ - lib/driver/runtime.rb
116
+ - lib/errors.rb
117
+ - lib/event.rb
23
118
  - lib/insert_opts.rb
24
119
  - lib/job.rb
120
+ - lib/job_persisted_logging/plugin.rb
121
+ - lib/migration_cli.rb
122
+ - lib/migrator.rb
123
+ - lib/params.rb
124
+ - lib/periodic_cron.rb
125
+ - lib/periodic_job.rb
126
+ - lib/resumable.rb
25
127
  - lib/riverqueue.rb
128
+ - lib/riverqueue/testing.rb
129
+ - lib/riverqueue/testing/minitest.rb
130
+ - lib/riverqueue/testing/rspec.rb
131
+ - lib/unique_args.rb
26
132
  - lib/unique_bitmask.rb
133
+ - lib/worker.rb
134
+ - lib/worker_runner.rb
135
+ - migration/LICENSE
136
+ - migration/README.md
137
+ - migration/manifest.json
138
+ - migration/postgresql/main/001_create_river_migration.down.sql
139
+ - migration/postgresql/main/001_create_river_migration.up.sql
140
+ - migration/postgresql/main/002_initial_schema.down.sql
141
+ - migration/postgresql/main/002_initial_schema.up.sql
142
+ - migration/postgresql/main/003_river_job_tags_non_null.down.sql
143
+ - migration/postgresql/main/003_river_job_tags_non_null.up.sql
144
+ - migration/postgresql/main/004_pending_and_more.down.sql
145
+ - migration/postgresql/main/004_pending_and_more.up.sql
146
+ - migration/postgresql/main/005_migration_unique_client.down.sql
147
+ - migration/postgresql/main/005_migration_unique_client.up.sql
148
+ - migration/postgresql/main/006_bulk_unique.down.sql
149
+ - migration/postgresql/main/006_bulk_unique.up.sql
150
+ - migration/postgresql/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.down.sql
151
+ - migration/postgresql/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.up.sql
152
+ - migration/postgresql/main/008_job_id_autoincrement.down.sql
153
+ - migration/postgresql/main/008_job_id_autoincrement.up.sql
154
+ - migration/sqlite/main/001_create_river_migration.down.sql
155
+ - migration/sqlite/main/001_create_river_migration.up.sql
156
+ - migration/sqlite/main/002_initial_schema.down.sql
157
+ - migration/sqlite/main/002_initial_schema.up.sql
158
+ - migration/sqlite/main/003_river_job_tags_non_null.down.sql
159
+ - migration/sqlite/main/003_river_job_tags_non_null.up.sql
160
+ - migration/sqlite/main/004_pending_and_more.down.sql
161
+ - migration/sqlite/main/004_pending_and_more.up.sql
162
+ - migration/sqlite/main/005_migration_unique_client.down.sql
163
+ - migration/sqlite/main/005_migration_unique_client.up.sql
164
+ - migration/sqlite/main/006_bulk_unique.down.sql
165
+ - migration/sqlite/main/006_bulk_unique.up.sql
166
+ - migration/sqlite/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.down.sql
167
+ - migration/sqlite/main/007_notification_outbox_sqlite_jsonb_and_sql_cleanup.up.sql
168
+ - migration/sqlite/main/008_job_id_autoincrement.down.sql
169
+ - migration/sqlite/main/008_job_id_autoincrement.up.sql
170
+ - sig/client.rbs
171
+ - sig/driver.rbs
172
+ - sig/insert_opts.rbs
173
+ - sig/job.rbs
174
+ - sig/job_persisted_logging/plugin.rbs
175
+ - sig/migrator.rbs
176
+ - sig/riverqueue.rbs
177
+ - sig/runtime.rbs
178
+ - sig/testing.rbs
179
+ - sig/unique_args.rbs
180
+ - sig/unique_bitmask.rbs
181
+ - sig/worker_runner.rbs
27
182
  homepage: https://riverqueue.com
28
183
  licenses:
29
- - LGPL-3.0-or-later
184
+ - MPL-2.0
30
185
  metadata:
31
186
  bug_tracker_uri: https://github.com/riverqueue/riverqueue-ruby/issues
32
187
  changelog_uri: https://github.com/riverqueue/riverqueue-ruby/blob/master/CHANGELOG.md
@@ -39,7 +194,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
39
194
  requirements:
40
195
  - - ">="
41
196
  - !ruby/object:Gem::Version
42
- version: '0'
197
+ version: '3.2'
43
198
  required_rubygems_version: !ruby/object:Gem::Requirement
44
199
  requirements:
45
200
  - - ">="
@@ -48,5 +203,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
48
203
  requirements: []
49
204
  rubygems_version: 4.0.9
50
205
  specification_version: 4
51
- summary: River is a fast job queue for Go.
206
+ summary: A fast, reliable job queue for Ruby backed by PostgreSQL or SQLite.
52
207
  test_files: []