exekutor 0.1.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 (49) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +3 -0
  3. data/LICENSE.txt +21 -0
  4. data/exe/exekutor +7 -0
  5. data/lib/active_job/queue_adapters/exekutor_adapter.rb +14 -0
  6. data/lib/exekutor/asynchronous.rb +188 -0
  7. data/lib/exekutor/cleanup.rb +56 -0
  8. data/lib/exekutor/configuration.rb +373 -0
  9. data/lib/exekutor/hook.rb +172 -0
  10. data/lib/exekutor/info/worker.rb +20 -0
  11. data/lib/exekutor/internal/base_record.rb +11 -0
  12. data/lib/exekutor/internal/callbacks.rb +138 -0
  13. data/lib/exekutor/internal/cli/app.rb +173 -0
  14. data/lib/exekutor/internal/cli/application_loader.rb +36 -0
  15. data/lib/exekutor/internal/cli/cleanup.rb +96 -0
  16. data/lib/exekutor/internal/cli/daemon.rb +108 -0
  17. data/lib/exekutor/internal/cli/default_option_value.rb +29 -0
  18. data/lib/exekutor/internal/cli/info.rb +126 -0
  19. data/lib/exekutor/internal/cli/manager.rb +260 -0
  20. data/lib/exekutor/internal/configuration_builder.rb +113 -0
  21. data/lib/exekutor/internal/database_connection.rb +21 -0
  22. data/lib/exekutor/internal/executable.rb +75 -0
  23. data/lib/exekutor/internal/executor.rb +242 -0
  24. data/lib/exekutor/internal/hooks.rb +87 -0
  25. data/lib/exekutor/internal/listener.rb +176 -0
  26. data/lib/exekutor/internal/logger.rb +74 -0
  27. data/lib/exekutor/internal/provider.rb +308 -0
  28. data/lib/exekutor/internal/reserver.rb +95 -0
  29. data/lib/exekutor/internal/status_server.rb +132 -0
  30. data/lib/exekutor/job.rb +31 -0
  31. data/lib/exekutor/job_error.rb +11 -0
  32. data/lib/exekutor/job_options.rb +95 -0
  33. data/lib/exekutor/plugins/appsignal.rb +46 -0
  34. data/lib/exekutor/plugins.rb +13 -0
  35. data/lib/exekutor/queue.rb +141 -0
  36. data/lib/exekutor/version.rb +6 -0
  37. data/lib/exekutor/worker.rb +219 -0
  38. data/lib/exekutor.rb +49 -0
  39. data/lib/generators/exekutor/configuration_generator.rb +18 -0
  40. data/lib/generators/exekutor/install_generator.rb +43 -0
  41. data/lib/generators/exekutor/templates/install/functions/job_notifier.sql +7 -0
  42. data/lib/generators/exekutor/templates/install/functions/requeue_orphaned_jobs.sql +7 -0
  43. data/lib/generators/exekutor/templates/install/initializers/exekutor.rb.erb +14 -0
  44. data/lib/generators/exekutor/templates/install/migrations/create_exekutor_schema.rb.erb +83 -0
  45. data/lib/generators/exekutor/templates/install/triggers/notify_workers.sql +6 -0
  46. data/lib/generators/exekutor/templates/install/triggers/requeue_orphaned_jobs.sql +5 -0
  47. data.tar.gz.sig +0 -0
  48. metadata +403 -0
  49. metadata.gz.sig +0 -0
metadata ADDED
@@ -0,0 +1,403 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: exekutor
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Roy
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEODCCAqCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhyb3kv
14
+ REM9ZGV2ZGljYXRlZC9EQz1jb20wHhcNMjMwMzIzMTk1NjIyWhcNMjQwMzIyMTk1
15
+ NjIyWjAjMSEwHwYDVQQDDBhyb3kvREM9ZGV2ZGljYXRlZC9EQz1jb20wggGiMA0G
16
+ CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCqcUW6FoYS9hjloOr6Q6mE1PiY6Bz7
17
+ 7xauNabZQ5dEh4BCOzIL+QK7XgZ1cs/fACbSlZX1Ayo6soip7gv++VxONhccuD7m
18
+ uqp/oco5lEUKHkVV/NCPbpanCVHxdIvVNIwS82l45xTPgKoDddW1FXsCA5gSMWrW
19
+ GQ7c1TbgZJGkvehiWInUE/oPxbDMijyMyBq31XHhoKfDkQ/Urg1Q73gYEzQwA0PX
20
+ cdL7B6K8TKtW0Iqc5Y72eE8IegHkQuxAeXxcbQMsydaKXJAtmx1MEkCEY/1ctprP
21
+ bQRJlebrcaMqLHhEK2+SyiSInxw87C1zCho0CW4VT0DHpio583/reTp6fXzPPX5P
22
+ D9MXiv9yeNa5ELUx8a8YB7nqgzPkdA835OnnwskK9v26On9sJecQ5BEeSzIx6LWV
23
+ fWNX7+ZQWsf2nHxRDWDEzRADu3zie/dnpdCqGbCQi5hp+nzJE8sOhB2DzBJFFVHn
24
+ RIovMYHI0tJ3ccd0kSw4fcH7Kepn+jZlHO0CAwEAAaN3MHUwCQYDVR0TBAIwADAL
25
+ BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFAXJwXgFb7C1UD4UwKkjwi0BienmMB0GA1Ud
26
+ EQQWMBSBEnJveUBkZXZkaWNhdGVkLmNvbTAdBgNVHRIEFjAUgRJyb3lAZGV2ZGlj
27
+ YXRlZC5jb20wDQYJKoZIhvcNAQELBQADggGBAIG6Hl1+LguDxUxanHW8KEEMxy4+
28
+ uzmOraMruafcYEo4OA5N2oYuWo1PNImCaq5hvDfJriNpAR4IR3qymRLntY3Vg237
29
+ PTGtYrahthqdmxUMW0W2NXFgsrxkBdurbHktpgQLRma79DSDUFONX4RV2gZZK6NY
30
+ 40m5Eiocg3nRlrdyrH2cplBvRQ/rd7WUYeCj+OGnw7dYxWMgbmqmAdA3H0Bho8AJ
31
+ ZV4NOk08FpfutgXguRo371XhY67s9p4YlZ0y0Q1lyUWbe298kO3HR70oXqAmwifV
32
+ uvTU/8zlfnDf/tFpQqM5PssU9Fa2J3f0cavOcLjxsvA+RFveZKt1H9qvPX/QjiQs
33
+ rRpAdWB62/Mg6T7UTZi78au81kf13TcqvOFwS3wRaw/cC/2Xht8oVnH8y8TU99VW
34
+ LMMHpsz0vpxVqcs8USL9494hQUWRVlYd1F2PJeWtdKi0bU8dCduphJd8cTvCtS2l
35
+ CAY756btGBLeeWMBZ/DRMj1Cz3ifI9DV+KHqXg==
36
+ -----END CERTIFICATE-----
37
+ date: 2023-03-23 00:00:00.000000000 Z
38
+ dependencies:
39
+ - !ruby/object:Gem::Dependency
40
+ name: activejob
41
+ requirement: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '6.0'
46
+ - - "<"
47
+ - !ruby/object:Gem::Version
48
+ version: '8.0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '6.0'
56
+ - - "<"
57
+ - !ruby/object:Gem::Version
58
+ version: '8.0'
59
+ - !ruby/object:Gem::Dependency
60
+ name: activerecord
61
+ requirement: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '6.0'
66
+ - - "<"
67
+ - !ruby/object:Gem::Version
68
+ version: '8.0'
69
+ type: :runtime
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '6.0'
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: '8.0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: railties
81
+ requirement: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '6.0'
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: '8.0'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '6.0'
96
+ - - "<"
97
+ - !ruby/object:Gem::Version
98
+ version: '8.0'
99
+ - !ruby/object:Gem::Dependency
100
+ name: concurrent-ruby
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '1.1'
106
+ type: :runtime
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '1.1'
113
+ - !ruby/object:Gem::Dependency
114
+ name: gli
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '2.0'
120
+ type: :runtime
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: '2.0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: rainbow
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '3.0'
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: '3.0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: terminal-table
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: '3.0'
148
+ type: :runtime
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '3.0'
155
+ - !ruby/object:Gem::Dependency
156
+ name: brakeman
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: '5.4'
162
+ type: :development
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: '5.4'
169
+ - !ruby/object:Gem::Dependency
170
+ name: combustion
171
+ requirement: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - "~>"
174
+ - !ruby/object:Gem::Version
175
+ version: '1.3'
176
+ type: :development
177
+ prerelease: false
178
+ version_requirements: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - "~>"
181
+ - !ruby/object:Gem::Version
182
+ version: '1.3'
183
+ - !ruby/object:Gem::Dependency
184
+ name: minitest
185
+ requirement: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: '5.0'
190
+ type: :development
191
+ prerelease: false
192
+ version_requirements: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - "~>"
195
+ - !ruby/object:Gem::Version
196
+ version: '5.0'
197
+ - !ruby/object:Gem::Dependency
198
+ name: minitest-reporters
199
+ requirement: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - "~>"
202
+ - !ruby/object:Gem::Version
203
+ version: '1.6'
204
+ type: :development
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - "~>"
209
+ - !ruby/object:Gem::Version
210
+ version: '1.6'
211
+ - !ruby/object:Gem::Dependency
212
+ name: mocha
213
+ requirement: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - "~>"
216
+ - !ruby/object:Gem::Version
217
+ version: '2.0'
218
+ type: :development
219
+ prerelease: false
220
+ version_requirements: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - "~>"
223
+ - !ruby/object:Gem::Version
224
+ version: '2.0'
225
+ - !ruby/object:Gem::Dependency
226
+ name: pg
227
+ requirement: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - "~>"
230
+ - !ruby/object:Gem::Version
231
+ version: '1.4'
232
+ type: :development
233
+ prerelease: false
234
+ version_requirements: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - "~>"
237
+ - !ruby/object:Gem::Version
238
+ version: '1.4'
239
+ - !ruby/object:Gem::Dependency
240
+ name: rack-test
241
+ requirement: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - "~>"
244
+ - !ruby/object:Gem::Version
245
+ version: '2.1'
246
+ type: :development
247
+ prerelease: false
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ requirements:
250
+ - - "~>"
251
+ - !ruby/object:Gem::Version
252
+ version: '2.1'
253
+ - !ruby/object:Gem::Dependency
254
+ name: rubocop
255
+ requirement: !ruby/object:Gem::Requirement
256
+ requirements:
257
+ - - "~>"
258
+ - !ruby/object:Gem::Version
259
+ version: '1.21'
260
+ type: :development
261
+ prerelease: false
262
+ version_requirements: !ruby/object:Gem::Requirement
263
+ requirements:
264
+ - - "~>"
265
+ - !ruby/object:Gem::Version
266
+ version: '1.21'
267
+ - !ruby/object:Gem::Dependency
268
+ name: simplecov
269
+ requirement: !ruby/object:Gem::Requirement
270
+ requirements:
271
+ - - "~>"
272
+ - !ruby/object:Gem::Version
273
+ version: '0.22'
274
+ type: :development
275
+ prerelease: false
276
+ version_requirements: !ruby/object:Gem::Requirement
277
+ requirements:
278
+ - - "~>"
279
+ - !ruby/object:Gem::Version
280
+ version: '0.22'
281
+ - !ruby/object:Gem::Dependency
282
+ name: timecop
283
+ requirement: !ruby/object:Gem::Requirement
284
+ requirements:
285
+ - - "~>"
286
+ - !ruby/object:Gem::Version
287
+ version: '0.9'
288
+ type: :development
289
+ prerelease: false
290
+ version_requirements: !ruby/object:Gem::Requirement
291
+ requirements:
292
+ - - "~>"
293
+ - !ruby/object:Gem::Version
294
+ version: '0.9'
295
+ - !ruby/object:Gem::Dependency
296
+ name: yard
297
+ requirement: !ruby/object:Gem::Requirement
298
+ requirements:
299
+ - - "~>"
300
+ - !ruby/object:Gem::Version
301
+ version: '0.9'
302
+ type: :development
303
+ prerelease: false
304
+ version_requirements: !ruby/object:Gem::Requirement
305
+ requirements:
306
+ - - "~>"
307
+ - !ruby/object:Gem::Version
308
+ version: '0.9'
309
+ - !ruby/object:Gem::Dependency
310
+ name: yard-activesupport-concern
311
+ requirement: !ruby/object:Gem::Requirement
312
+ requirements:
313
+ - - "~>"
314
+ - !ruby/object:Gem::Version
315
+ version: '0.0'
316
+ type: :development
317
+ prerelease: false
318
+ version_requirements: !ruby/object:Gem::Requirement
319
+ requirements:
320
+ - - "~>"
321
+ - !ruby/object:Gem::Version
322
+ version: '0.0'
323
+ description: "PostgreSQL backed active job adapter which uses `LISTEN/NOTIFY` to listen
324
+ for jobs and `FOR UPDATE SKIP LOCKED` to \nreserve jobs.\n"
325
+ email:
326
+ - roy@devdicated.com
327
+ executables:
328
+ - exekutor
329
+ extensions: []
330
+ extra_rdoc_files: []
331
+ files:
332
+ - LICENSE.txt
333
+ - exe/exekutor
334
+ - lib/active_job/queue_adapters/exekutor_adapter.rb
335
+ - lib/exekutor.rb
336
+ - lib/exekutor/asynchronous.rb
337
+ - lib/exekutor/cleanup.rb
338
+ - lib/exekutor/configuration.rb
339
+ - lib/exekutor/hook.rb
340
+ - lib/exekutor/info/worker.rb
341
+ - lib/exekutor/internal/base_record.rb
342
+ - lib/exekutor/internal/callbacks.rb
343
+ - lib/exekutor/internal/cli/app.rb
344
+ - lib/exekutor/internal/cli/application_loader.rb
345
+ - lib/exekutor/internal/cli/cleanup.rb
346
+ - lib/exekutor/internal/cli/daemon.rb
347
+ - lib/exekutor/internal/cli/default_option_value.rb
348
+ - lib/exekutor/internal/cli/info.rb
349
+ - lib/exekutor/internal/cli/manager.rb
350
+ - lib/exekutor/internal/configuration_builder.rb
351
+ - lib/exekutor/internal/database_connection.rb
352
+ - lib/exekutor/internal/executable.rb
353
+ - lib/exekutor/internal/executor.rb
354
+ - lib/exekutor/internal/hooks.rb
355
+ - lib/exekutor/internal/listener.rb
356
+ - lib/exekutor/internal/logger.rb
357
+ - lib/exekutor/internal/provider.rb
358
+ - lib/exekutor/internal/reserver.rb
359
+ - lib/exekutor/internal/status_server.rb
360
+ - lib/exekutor/job.rb
361
+ - lib/exekutor/job_error.rb
362
+ - lib/exekutor/job_options.rb
363
+ - lib/exekutor/plugins.rb
364
+ - lib/exekutor/plugins/appsignal.rb
365
+ - lib/exekutor/queue.rb
366
+ - lib/exekutor/version.rb
367
+ - lib/exekutor/worker.rb
368
+ - lib/generators/exekutor/configuration_generator.rb
369
+ - lib/generators/exekutor/install_generator.rb
370
+ - lib/generators/exekutor/templates/install/functions/job_notifier.sql
371
+ - lib/generators/exekutor/templates/install/functions/requeue_orphaned_jobs.sql
372
+ - lib/generators/exekutor/templates/install/initializers/exekutor.rb.erb
373
+ - lib/generators/exekutor/templates/install/migrations/create_exekutor_schema.rb.erb
374
+ - lib/generators/exekutor/templates/install/triggers/notify_workers.sql
375
+ - lib/generators/exekutor/templates/install/triggers/requeue_orphaned_jobs.sql
376
+ homepage: https://github.com/devdicated/exekutor
377
+ licenses:
378
+ - MIT
379
+ metadata:
380
+ homepage_uri: https://github.com/devdicated/exekutor
381
+ source_code_uri: https://github.com/devdicated/exekutor
382
+ changelog_uri: https://github.com/devdicated/exekutor/blob/master/CHANGELOG.md
383
+ allowed_push_host: https://rubygems.org
384
+ post_install_message:
385
+ rdoc_options: []
386
+ require_paths:
387
+ - lib
388
+ required_ruby_version: !ruby/object:Gem::Requirement
389
+ requirements:
390
+ - - ">="
391
+ - !ruby/object:Gem::Version
392
+ version: 2.6.0
393
+ required_rubygems_version: !ruby/object:Gem::Requirement
394
+ requirements:
395
+ - - ">="
396
+ - !ruby/object:Gem::Version
397
+ version: '0'
398
+ requirements: []
399
+ rubygems_version: 3.0.9
400
+ signing_key:
401
+ specification_version: 4
402
+ summary: ActiveJob adapter with PostgreSQL backend.
403
+ test_files: []
metadata.gz.sig ADDED
Binary file