【发布时间】:2016-10-18 09:55:12
【问题描述】:
标题说明了一切。
是否可以手动运行 Clockwork 作业?例如。如果我有一个clock.rb 文件
module Clockwork
every(15.minutes, 'api.sync_shifts') do
Shift.sync
end
on(:after_run) do |event, t|
REDIS.hset("clockwork:last_run", event.job, t)
end
end
我希望能够拨打Clockwork.run('api.sync_shifts') 之类的电话。
我查看了发条源,没有发现任何有用的东西。显然,在这个例子中,我可以手动运行 Shift.sync 方法,但是我会丢失我用来监控我的工作状态的 after_run/before_run 回调。
【问题讨论】:
-
我不熟悉 Clockwork,但似乎您需要添加一个抽象级别,并通过 Clockwork 或您希望从中调用方法的任何其他接口使您需要的方法可用。您能否将
Shift.sync包装在一个也调用REDIS.hset的方法中,或者该命令是Clockwork DSL 的一部分? -
也许将您的事件提取到从发条文件运行的单独脚本中。
-
我希望 Clockwork 本身是我的抽象级别,但看起来我需要将它全部包裹一层。感谢您的提示。
标签: ruby-on-rails ruby clockwork