exekutor 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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