tina4ruby 3.11.17 → 3.11.18

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.
@@ -53,6 +53,16 @@ module Tina4
53
53
  end
54
54
  end
55
55
 
56
+ # Stop background tasks
57
+ if defined?(Tina4::Background)
58
+ begin
59
+ Tina4::Background.stop_all
60
+ Tina4::Log.info("Background tasks stopped")
61
+ rescue => e
62
+ Tina4::Log.error("Error stopping background tasks: #{e.message}")
63
+ end
64
+ end
65
+
56
66
  # Close database connections
57
67
  if Tina4.database
58
68
  begin
data/lib/tina4/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tina4
4
- VERSION = "3.11.17"
4
+ VERSION = "3.11.18"
5
5
  end
data/lib/tina4.rb CHANGED
@@ -35,6 +35,7 @@ require_relative "tina4/cors"
35
35
  require_relative "tina4/rate_limiter"
36
36
  require_relative "tina4/health"
37
37
  require_relative "tina4/shutdown"
38
+ require_relative "tina4/background"
38
39
  require_relative "tina4/localization"
39
40
  require_relative "tina4/container"
40
41
  require_relative "tina4/queue"
@@ -385,6 +386,16 @@ module Tina4
385
386
  Tina4::ServiceRunner.register(name, nil, options, &block)
386
387
  end
387
388
 
389
+ # Register a periodic background task.
390
+ # Mirrors Python's tina4_python.core.server.background(fn, interval) and
391
+ # PHP's $app->background($callback, $interval).
392
+ #
393
+ # Tina4.background(interval: 5.0) { drain_queue }
394
+ # Tina4.background(method(:health_check), interval: 30.0)
395
+ def background(callback = nil, interval: 1.0, &block)
396
+ Tina4::Background.register(callback, interval: interval, &block)
397
+ end
398
+
388
399
  # DI container shortcuts
389
400
  def register(name, instance = nil, &block)
390
401
  Tina4::Container.register(name, instance, &block)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tina4ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.11.17
4
+ version: 3.11.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tina4 Team
@@ -281,6 +281,7 @@ files:
281
281
  - lib/tina4/api.rb
282
282
  - lib/tina4/auth.rb
283
283
  - lib/tina4/auto_crud.rb
284
+ - lib/tina4/background.rb
284
285
  - lib/tina4/cache.rb
285
286
  - lib/tina4/cli.rb
286
287
  - lib/tina4/constants.rb