class TraceImporterJob < ApplicationJob
- queue_as :default
+ queue_as :traces
def perform(trace)
gpx = trace.import
if gpx.actual_points.positive?
- Notifier.gpx_success(trace, gpx.actual_points).deliver_later
+ UserMailer.gpx_success(trace, gpx.actual_points).deliver
else
- Notifier.gpx_failure(trace, "0 points parsed ok. Do they all have lat,lng,alt,timestamp?").deliver_later
+ UserMailer.gpx_failure(trace, "0 points parsed ok. Do they all have lat,lng,alt,timestamp?").deliver
trace.destroy
end
- rescue StandardError => ex
- logger.info ex.to_s
- ex.backtrace.each { |l| logger.info l }
- Notifier.gpx_failure(trace, ex.to_s + "\n" + ex.backtrace.join("\n")).deliver_later
+ rescue XML::Error => e
+ logger.info e.to_s
+ UserMailer.gpx_failure(trace, e).deliver
+ trace.destroy
+ rescue StandardError => e
+ logger.info e.to_s
+ e.backtrace.each { |l| logger.info l }
+ UserMailer.gpx_failure(trace, "#{e}\n#{e.backtrace.join("\n")}").deliver
trace.destroy
end
end