在 Rufus 中使用 Rake
Using Rake with Rufus
我正在尝试使用 rake 和 rufus,这两个我都是新手。我想让 Rufus 调用我的 rake 任务,但我收到以下错误。 Don't know how to build task 'inbox:process_inbox'
lib/tasks/inbox_tasks.rb
namespace :inbox do
task :process_inbox do
logger = Logger.new(Rails.root.to_s + "/log/scheduler.log")
logger.info "Rufus Here!"
end
end
rufus_scheduler.rb
require 'rufus-scheduler'
require 'rake'
scheduler = Rufus::Scheduler.new
scheduler.every '10s', :first_at => Time.now + 3 do
Rake::Task["inbox:process_inbox"]
end
这个有帮助吗?
How to build task 'db:populate'(将 inbox_tasks.rb 重命名为 inbox_tasks.rake)
(做了一个简单的 https://www.google.com/?#q=rails+don%27t+know+how+to+build+task ...)
正如@jmettraux(rufus-scheduler 的创建者!)已经回答的那样,问题是 rake 任务是在 .rb
文件中定义的,而不是.rake
文件。
添加更多详细信息以在将来提供帮助。
在创建新的 rake 任务时,您可以让 rails 生成器自动创建具有适当结构的文件。
示例:运行
> rails g task inbox process_inbox
create lib/tasks/inbox.rake
将创建一个名为 lib/tasks/inbox.rake
的文件,内容为:
namespace :inbox do
desc "TODO"
task process_inbox: :environment do
end
end
在任务定义中有一个 DESC
很重要;允许通过 运行 rake -T inbox
或 rake -T | grep inbox
验证 rake 任务是否已定义且可用
> rake -T inbox
rake inbox:process_inbox # TODO
我正在尝试使用 rake 和 rufus,这两个我都是新手。我想让 Rufus 调用我的 rake 任务,但我收到以下错误。 Don't know how to build task 'inbox:process_inbox'
lib/tasks/inbox_tasks.rb
namespace :inbox do
task :process_inbox do
logger = Logger.new(Rails.root.to_s + "/log/scheduler.log")
logger.info "Rufus Here!"
end
end
rufus_scheduler.rb
require 'rufus-scheduler'
require 'rake'
scheduler = Rufus::Scheduler.new
scheduler.every '10s', :first_at => Time.now + 3 do
Rake::Task["inbox:process_inbox"]
end
这个有帮助吗?
How to build task 'db:populate'(将 inbox_tasks.rb 重命名为 inbox_tasks.rake)
(做了一个简单的 https://www.google.com/?#q=rails+don%27t+know+how+to+build+task ...)
正如@jmettraux(rufus-scheduler 的创建者!)已经回答的那样,问题是 rake 任务是在 .rb
文件中定义的,而不是.rake
文件。
添加更多详细信息以在将来提供帮助。
在创建新的 rake 任务时,您可以让 rails 生成器自动创建具有适当结构的文件。
示例:运行
> rails g task inbox process_inbox
create lib/tasks/inbox.rake
将创建一个名为 lib/tasks/inbox.rake
的文件,内容为:
namespace :inbox do
desc "TODO"
task process_inbox: :environment do
end
end
在任务定义中有一个 DESC
很重要;允许通过 运行 rake -T inbox
或 rake -T | grep inbox
> rake -T inbox
rake inbox:process_inbox # TODO