【发布时间】:2018-02-11 19:08:55
【问题描述】:
我一直在使用 padrino ruby 框架开发后端,我想构建一个 cron 作业。
这就是我所做的。
gem 'whenever', :require => falsewheneverize .
在 schedule.rb 中
every 1.minute do
rake "cronjob"
end
/tasks/cronjob.rake
在这里我添加了我的自定义任务。在这里添加会很长。
所以我只写了错误发生的部分
performances = Performance.left_join(:slots, id: :slot_id).where(Sequel.~(status: ModelA::Api.settings.pending),Sequel[:slots][:from]>oneweekbefore,Sequel[:slots][:to]<onemonthafter+1.day)
....
begin
data = {}
data[:from] = "** <postmaster@**.mailgun.org>"
data[:to] = email
data[:subject] = subject
data[:html] = render 'mails/sendemailbasedontime',:locals => { :data => localdata }
RestClient.post GigabitArtist::Api.settings.mailgun_domain, data
rescue => exception
puts exception.inspect
end
end
我收到了这些错误:
SEQUEL 弃用警告:将多个参数作为过滤器传递 不使用条件说明符时的参数 ([#:!=, @args=>[:状态, "待定"]>, #:>, @args=>[#"slots", @column=>:from>,星期六,2017 年 12 月 2 日]>,#:[#"slots", @column=>:to>,星期三,2018 年 1 月 10 日]>]) 已弃用并将被删除 在 Sequel 5. 将参数传递给单独的过滤器方法或使用 续集。& 将它们结合起来。 /Users/whitesnow/.rvm/gems/ruby-2.4.1/gems/sequel-4.46.0/lib/sequel/dataset/query.rb:1296:in
filter_expr' /Users/whitesnow/.rvm/gems/ruby-2.4.1/gems/sequel-4.46.0/lib/sequel/dataset/query.rb:1249:inadd_filter' /Users/whitesnow/.rvm/gems/ruby-2.4.1/gems/sequel-4.46.0/lib/sequel/dataset/query.rb:1034:inwhere' /Volumes/Data/Work/RBP/GAB/tasks/cronjob.rake:12:inblock in ' /Users/whitesnow/.rvm/gems/ruby-2.4.1@global/gems/rake-12.0.0/lib/rake/task.rb:250:inblock in execute' /Users/whitesnow/.rvm/gems/ruby-2.4.1@global/gems/rake-12.0.0/lib/rake/task.rb:250:ineach' /Users/whitesnow/.rvm/gems/ruby-2.4.1@global/gems/rake-12.0.0/lib/rake/task.rb:250:inexecute' /Users/whitesnow/.rvm/gems/ruby-2.4.1@global/gems/rake-12.0.0/lib/rake/task.rb:194:inblock in invoke_with_call_chain' /Users/whitesnow/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/monitor.rb:214:inmon_synchronize' /Users/whitesnow/.rvm/gems/ruby-2.4.1@global/gems/rake-12.0.0/lib/rake/task.rb:187:ininvoke_with_call_chain'
我认为错误来自sequel querying 和
data[:html] = render 'mails/sendemailbasedontime',:locals => { :data => localdata }
当然,此查询已在其他 .rb 文件中测试过,我使用原始 sql 进行了测试。例如,我在 test.rb 控制器的 get request handler 中测试了这个任务。它确实运作良好 我想知道我是否可以在任务中使用渲染功能。 我整天搜索这个问题没有成功。 任何建议都会对我有很大帮助。 非常感谢。
【问题讨论】: