kaal 0.2.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 (46) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +340 -0
  4. data/Rakefile +6 -0
  5. data/app/models/kaal/cron_definition.rb +71 -0
  6. data/app/models/kaal/cron_dispatch.rb +50 -0
  7. data/app/models/kaal/cron_lock.rb +38 -0
  8. data/config/locales/en.yml +46 -0
  9. data/lib/generators/kaal/install/install_generator.rb +67 -0
  10. data/lib/generators/kaal/install/templates/create_kaal_definitions.rb.tt +21 -0
  11. data/lib/generators/kaal/install/templates/create_kaal_dispatches.rb.tt +20 -0
  12. data/lib/generators/kaal/install/templates/create_kaal_locks.rb.tt +17 -0
  13. data/lib/generators/kaal/install/templates/kaal.rb.tt +31 -0
  14. data/lib/generators/kaal/install/templates/scheduler.yml.tt +22 -0
  15. data/lib/kaal/backend/adapter.rb +147 -0
  16. data/lib/kaal/backend/dispatch_logging.rb +79 -0
  17. data/lib/kaal/backend/memory_adapter.rb +99 -0
  18. data/lib/kaal/backend/mysql_adapter.rb +170 -0
  19. data/lib/kaal/backend/postgres_adapter.rb +134 -0
  20. data/lib/kaal/backend/redis_adapter.rb +145 -0
  21. data/lib/kaal/backend/sqlite_adapter.rb +116 -0
  22. data/lib/kaal/configuration.rb +231 -0
  23. data/lib/kaal/coordinator.rb +437 -0
  24. data/lib/kaal/cron_humanizer.rb +182 -0
  25. data/lib/kaal/cron_utils.rb +233 -0
  26. data/lib/kaal/definition/database_engine.rb +45 -0
  27. data/lib/kaal/definition/memory_engine.rb +61 -0
  28. data/lib/kaal/definition/redis_engine.rb +93 -0
  29. data/lib/kaal/definition/registry.rb +46 -0
  30. data/lib/kaal/dispatch/database_engine.rb +94 -0
  31. data/lib/kaal/dispatch/memory_engine.rb +99 -0
  32. data/lib/kaal/dispatch/redis_engine.rb +103 -0
  33. data/lib/kaal/dispatch/registry.rb +62 -0
  34. data/lib/kaal/idempotency_key_generator.rb +26 -0
  35. data/lib/kaal/railtie.rb +183 -0
  36. data/lib/kaal/rake_tasks.rb +184 -0
  37. data/lib/kaal/register_conflict_support.rb +54 -0
  38. data/lib/kaal/registry.rb +242 -0
  39. data/lib/kaal/scheduler_config_error.rb +6 -0
  40. data/lib/kaal/scheduler_file_loader.rb +316 -0
  41. data/lib/kaal/scheduler_hash_transform.rb +40 -0
  42. data/lib/kaal/scheduler_placeholder_support.rb +80 -0
  43. data/lib/kaal/version.rb +10 -0
  44. data/lib/kaal.rb +571 -0
  45. data/lib/tasks/kaal_tasks.rake +10 -0
  46. metadata +142 -0
metadata ADDED
@@ -0,0 +1,142 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kaal
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Nitesh Purohit
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: fugit
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.8'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.8'
26
+ - !ruby/object:Gem::Dependency
27
+ name: rails
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '7.1'
33
+ - - "<"
34
+ - !ruby/object:Gem::Version
35
+ version: '9.0'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '7.1'
43
+ - - "<"
44
+ - !ruby/object:Gem::Version
45
+ version: '9.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rails-i18n
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '7.0'
53
+ type: :runtime
54
+ prerelease: false
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '7.0'
60
+ description: " Kaal is a distributed cron scheduler for Ruby that safely executes
61
+ scheduled tasks across multiple nodes.\n"
62
+ email:
63
+ - nitesh.purohit.it@gmail.com
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - LICENSE
69
+ - README.md
70
+ - Rakefile
71
+ - app/models/kaal/cron_definition.rb
72
+ - app/models/kaal/cron_dispatch.rb
73
+ - app/models/kaal/cron_lock.rb
74
+ - config/locales/en.yml
75
+ - lib/generators/kaal/install/install_generator.rb
76
+ - lib/generators/kaal/install/templates/create_kaal_definitions.rb.tt
77
+ - lib/generators/kaal/install/templates/create_kaal_dispatches.rb.tt
78
+ - lib/generators/kaal/install/templates/create_kaal_locks.rb.tt
79
+ - lib/generators/kaal/install/templates/kaal.rb.tt
80
+ - lib/generators/kaal/install/templates/scheduler.yml.tt
81
+ - lib/kaal.rb
82
+ - lib/kaal/backend/adapter.rb
83
+ - lib/kaal/backend/dispatch_logging.rb
84
+ - lib/kaal/backend/memory_adapter.rb
85
+ - lib/kaal/backend/mysql_adapter.rb
86
+ - lib/kaal/backend/postgres_adapter.rb
87
+ - lib/kaal/backend/redis_adapter.rb
88
+ - lib/kaal/backend/sqlite_adapter.rb
89
+ - lib/kaal/configuration.rb
90
+ - lib/kaal/coordinator.rb
91
+ - lib/kaal/cron_humanizer.rb
92
+ - lib/kaal/cron_utils.rb
93
+ - lib/kaal/definition/database_engine.rb
94
+ - lib/kaal/definition/memory_engine.rb
95
+ - lib/kaal/definition/redis_engine.rb
96
+ - lib/kaal/definition/registry.rb
97
+ - lib/kaal/dispatch/database_engine.rb
98
+ - lib/kaal/dispatch/memory_engine.rb
99
+ - lib/kaal/dispatch/redis_engine.rb
100
+ - lib/kaal/dispatch/registry.rb
101
+ - lib/kaal/idempotency_key_generator.rb
102
+ - lib/kaal/railtie.rb
103
+ - lib/kaal/rake_tasks.rb
104
+ - lib/kaal/register_conflict_support.rb
105
+ - lib/kaal/registry.rb
106
+ - lib/kaal/scheduler_config_error.rb
107
+ - lib/kaal/scheduler_file_loader.rb
108
+ - lib/kaal/scheduler_hash_transform.rb
109
+ - lib/kaal/scheduler_placeholder_support.rb
110
+ - lib/kaal/version.rb
111
+ - lib/tasks/kaal_tasks.rake
112
+ homepage: https://github.com/Code-Vedas/kaal
113
+ licenses:
114
+ - MIT
115
+ metadata:
116
+ bug_tracker_uri: https://github.com/Code-Vedas/kaal/issues
117
+ changelog_uri: https://github.com/Code-Vedas/kaal/blob/main/CHANGELOG.md
118
+ documentation_uri: https://kaal.codevedas.com
119
+ homepage_uri: https://github.com/Code-Vedas/kaal
120
+ source_code_uri: https://github.com/Code-Vedas/kaal.git
121
+ funding_uri: https://github.com/sponsors/Code-Vedas
122
+ support_uri: https://kaal.codevedas.com/support
123
+ rubygems_uri: https://rubygems.org/gems/kaal
124
+ rubygems_mfa_required: 'true'
125
+ rdoc_options: []
126
+ require_paths:
127
+ - lib
128
+ required_ruby_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '3.2'
133
+ required_rubygems_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ requirements: []
139
+ rubygems_version: 3.6.7
140
+ specification_version: 4
141
+ summary: Distributed cron scheduler for Ruby.
142
+ test_files: []