gpt4 book ai didi

ruby-on-rails - 如何使用 Clockwork Rails 调度程序 Gem?

转载 作者:行者123 更新时间:2023-12-04 05:34:11 28 4
gpt4 key购买 nike

我遇到了 Clockwork 调度程序进程的语法问题。我实际上遇到了与此线程中讨论的问题类似的问题,但从未得到完整回答(How do I use Rails clockwork gem to run rake tasks?)

当我使用 'heroku rake send_notifications' 测试它时,我的 'scheduler.rake' 工作正常。我的clock.rb 进程也在工作,因为它会每30 秒触发一次。但是,我遇到了clock.rb 的语法问题,无法在我的“rake.scheduler”中正确运行“send_notifications”任务。这是它的样子:

# scheduler.rake
desc "This task is called by the Heroku scheduler add-on"
task :send_notifications => :environment do

puts "this test is working correctly!"

end

这是clock.rb 的样子:
require File.expand_path('../../config/boot',        __FILE__)
require File.expand_path('../../config/environment', __FILE__)
require 'clockwork'

include Clockwork

every(30.seconds, 'Send notifications') {
# Heroku::API.new.post_ps('pocket-pal', 'rake scheduler:send_notifications')
rake scheduler:send_notifications
}

如您所见,我已经尝试过使用 Heroku API 并调用 rake 的分离进程。

当我使用 Heroku API 时,出现此错误:
ERROR -- : uninitialized constant Heroku (NameError)

当我调用 rake 时,出现以下错误:
ERROR -- : undefined local variable or method `send_notifications' for main:Object (NameError)

有谁知道这两种方法的正确语法是什么?

最佳答案

This answer works,但是你需要遵循它的字符串语法 确切地。 所以在你的情况下:

every(30.seconds, 'Send Notifications') {
`rake scheduler:send_notifications`
}

这意味着确保使用 ` `用于包装 rake 任务,而不是 " "因为这让一些人绊倒了。

关于ruby-on-rails - 如何使用 Clockwork Rails 调度程序 Gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13465869/

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