私は約30,000件の注文(レコード)を持っています。 コントローラからは、バックグラウンド処理のために遅延ジョブを使用して注文(レコード)のCSVを含む電子メールを送信します。コードは次のようである -巨大なCSVファイルをメールに添付して送信すると、私は非常に遅い応答を得ており、時にはタイムアウトが要求されます。
OrderNotifier.delay.send_orders_csv(current_user, arranged_orders)
メーラで -
def send_orders_csv(logged_in_user, orders)
@user = logged_in_user
attachments['orders.csv'] = { mime_type: 'text/csv', content: Order.orders_csv(logged_in_user, orders) }
mail(to: logged_in_user.email, subject: 'Orders CSV')
end
そして、それは遅延に行を挿入::仕事はほとんど3万私のように送信する必要があるレコードのがあるので、それは多くの時間がかかりますCSV添付。 私はdelayed_job労働者を増やしてみました。しかし、それはそれを解決しませんでした。
大量のレコードを含むメールをCSVファイルに一度に送信するにはどうすればよいですか?
多量のデータを持つ可変注文があり、ジョブがDelayed :: Jobに挿入されると実際にその変数が保存されます。そして、それがリクエストタイムアウトの背後にある理由です。 –