If we delay sending failure notifications then they will fail because the trace will no longer exist. As trace imports are running in the background anyway there doesn't seem to be any good reason to defer the emails. Fixes #2312
19 lines
545 B
Ruby
19 lines
545 B
Ruby
class TraceImporterJob < ApplicationJob
|
|
queue_as :traces
|
|
|
|
def perform(trace)
|
|
gpx = trace.import
|
|
|
|
if gpx.actual_points.positive?
|
|
Notifier.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
|
|
trace.destroy
|
|
end
|
|
rescue StandardError => e
|
|
logger.info e.to_s
|
|
e.backtrace.each { |l| logger.info l }
|
|
Notifier.gpx_failure(trace, e.to_s + "\n" + e.backtrace.join("\n")).deliver
|
|
trace.destroy
|
|
end
|
|
end
|