--- /dev/null
+class TraceImporterJob < ApplicationJob
+ queue_as :default
+
+ def perform(trace)
+ gpx = trace.import
+
+ if gpx.actual_points.positive?
+ Notifier.gpx_success(trace, gpx.actual_points).deliver_later
+ else
+ Notifier.gpx_failure(trace, "0 points parsed ok. Do they all have lat,lng,alt,timestamp?").deliver_later
+ 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
+ trace.destroy
+ end
+end