gpt4 book ai didi

ruby-on-rails - 如何使用 Rails Clockwork gem 运行 rake 任务?

转载 作者:行者123 更新时间:2023-12-03 00:41:46 24 4
gpt4 key购买 nike

从 Clockwork 调用 rake 任务的语法是什么?我尝试了各种语法,但似乎没有任何效果。 (我对发条装置特别感兴趣,因为 Heroku 支持它。)

这是我的clock.rb,使用与每当gem使用相同的语法:

module Clockwork
puts "testing clockwork!"
every(30.seconds, 'Send Messages') {
rake 'scheduler:send_messages'
}
end

这是我在 Scheduler.rake 中的 rake 任务:

task :send_messages => :environment do
puts "rake task run successfully!"
end

这是当我启动发条进程时会发生的情况:

$ clockwork lib/clock.rb
testing clockwork!
I, [2012-07-16T14:42:58.107245 #46427] INFO -- : Starting clock for 1 events: [ Send Messages ]
I, [2012-07-16T14:42:58.107364 #46427] INFO -- : Triggering 'Send Messages'
attempting to run rake task!
E, [2012-07-16T14:42:58.107437 #46427] ERROR -- : undefined method `rake' for Clockwork:Module (NoMethodError)

每 30 秒运行一次。可以看到,clock.rb执行成功。但我一生都无法弄清楚运行 rake 任务的语法。不幸的是,发条自述文件没有帮助:

https://github.com/tomykaira/clockwork

最佳答案

rake 不是方法,因此您不能像这里那样调用它。

您可以 shell 并调用它,例如

every(30.seconds, 'Send Messages') {
`rake scheduler:send_messages`
}

或者更确切地说,使用 heroku API 调用一个新的独立进程。这是我现在首选的方法:

Heroku::API.new.post_ps('your-app', 'rake scheduler:send_messages')

Heroku::API 可从 heroku.rb 获取:https://github.com/heroku/heroku.rb

关于ruby-on-rails - 如何使用 Rails Clockwork gem 运行 rake 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11513058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com