Module: DBcron

Defined in:
lib/dbcron.rb,
lib/dbcron/version.rb

Overview

nodoc

Defined Under Namespace

Modules: Actor Classes: Clock, CrontabEntry, Entry, Host, TaskRunner

Constant Summary collapse

GRACE_TIME =
5.minutes
SLEEPY_TIME =
3.seconds
HOST_ALIVE_TIME =
15.seconds
UTC =
ActiveSupport::TimeZone["UTC"]
VERSION =
"0.0.1"

Class Method Summary collapse

Class Method Details

.schedule(**opts) {|Celluloid::Actor[:clock]| ... } ⇒ Object

Yields:

  • (Celluloid::Actor[:clock])


23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/dbcron.rb', line 23

def schedule(**opts)
  Celluloid.logger = opts[:logger] if opts[:logger]

  Class.new(Celluloid::Supervision::Container) do
    supervise type: Clock, as: :clock
    pool TaskRunner, as: :task_runners
  end.run!

  Celluloid::Actor[:clock].configure(opts)

  yield(Celluloid::Actor[:clock])
end

.startObject



36
37
38
39
# File 'lib/dbcron.rb', line 36

def start
  fail "You must run `dbcron.schedule` first" unless Celluloid::Actor[:clock]
  Celluloid::Actor[:clock].start
end