2017-12-08 6 views
0

私はpadrino ruby​​フレームワークを使用してバックエンドを開発しており、私はcronジョブを構築したいと考えています。ruby​​アプリケーションでcronジョブをカスタマイズする方法は?

これは私が行ったことです。 schedule.rb内部

  • gem 'whenever', :require => false
  • wheneverize .

every 1.minute do 
    rake "cronjob" 
end 

/tasks/cronjob.rake

H私は私のカスタムタスクを追加しました。これはここに追加するには長いです。

だから、私はこれらのエラーだ部分

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] = "** <[email protected]**.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のDEPRECATION警告:条件指定 ([#を使用しない場合、フィルタ 引数として複数の引数を渡すを:!=、@args => [:ステータス、 "保留中"]>、#:>、 @args => [# "slot"、 @column =>:from>、Sat、02 Dec 2011] 、#:<、@args => [# "slots"、 @column =>:to>、Wed、2018年1月10日]>])は廃止され、Sequel 5の が削除されます。引数を別のフィルタメソッドに渡すか、 Sequelを使用してください。それらを組み合わせるために&。 /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:in add_filter ' /Users/whitesnow/.rvm /gems/ruby-2.4.1/gems/sequel-4.46.0/lib/sequel/dataset/query.rb:1034:in where' /Volumes/Data/Work/RBP/GAB/tasks/cronjob.rake:12:in ' のブロック/Users/whitesnow/.rvm/gems/ruby-2.4。 [email protected]/gems/rake-12.0.0/lib/rake/task.rb:250: block in execute' /Users/whitesnow/.rvm/gems/[email protected]/gems/rake-12.0.0/lib/rake/task.rb:250:in それぞれ ' /Users/whitesnow/.rvm/gems/[email protected]/gems/rake- 12.0.0/lib/rake/task.rb:250: execute' /Users/whitesnow/.rvm/gems/[email protected]/gems/rake-12.0.0/lib/rake/task.rb:194:in ブロックin invoke_with_call_chain ' /Users/whitesnow/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/monitor.rb: 214:in mon_synchronize' /Users/whitesnow/.rvm/gems/[email protected]/gems/rake-12.0.0/lib/rake/task.rb:187:in invoke_with_call_chain '

は、私はエラーがsequel querying

data[:html] = render 'mails/sendemailbasedontime',:locals => { :data => localdata } 

勿論、このクエリは、他の.rbのファイルでテストしたと私は生のSQLを使用してテストからだと思います。たとえば、私はこのタスクをtest.rbコントローラのget handerでテストしました。それはうまく動作します 私はタスク内でレンダリング機能を使用できるかどうかを知りたいと思います。 この問題を一日中検索しましたが、成功しませんでした。 アドバイスは私にとって大きな助けになるでしょう。 ありがとうございます。

答えて

1

推奨されない警告として、複数の引数をフィルタメソッドに渡しています。最も単純な修正は、各引数に対して個別にフィルタメソッドを呼び出すことです:

performances = Performance. 
    left_join(:slots, id: :slot_id). 
    exclude(status: ModelA::Api.settings.pending). 
    where(Sequel[:slots][:from]>oneweekbefore). 
    where(Sequel[:slots][:to]<onemonthafter+1.day) 
関連する問題