1
この質問は、コードの品質と組織に関連しています。Rails - cronジョブを配置するための正しい場所
私はRailsアプリケーションを開発しており、私たちは毎日実行するいくつかのcronジョブを持っています。これらのジョグはすでに働いているが、現在、私は私のモデルの内側にそれらを配置しています、例えば:
def update_boleto_orders_payment_status
orders = Order.boleto_unpaid_orders
orders.each do |o|
order = HTTParty.get("https...",
headers: {"Authorization" => "BasiC#
{encode_auth_token}"})
order_status = JSON.parse(order.body).symbolize_keys![:status]
o.update_column(:paid, true) if(order_status.eql? "AUTHORIZED")
end
end
私は私の注文状況を更新するには、このメソッドを使用して、この方法は私の注文モデルの内側に位置しています。
私の質問は:レールのベストプラクティスとコンベンションを前提としていますが、私のモデルの中にこのジョブを配置するのは間違いありませんか?あるいは、私はこの種の方法を別の場所に置くべきですか?
ジョブとスケジューリングに関連するすべてのこと私は新しいディレクトリジョブの中に置くことができます、それは私のモデルの中に入れているよりも良いです:) –
はい。 Railsは数年前にActiveJobと呼ばれていたフレームワークを追加しましたが、#performに対応する普通のrubyオブジェクトを書くこともできます。例:UpdateBoletoOrderPaymentsStatusJob#perform –