openstreetmap-website/app/jobs/trace_importer_job.rb
Tom Hughes 5cb96cd1a2 Send trace import result notification immediately
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
2019-07-15 21:45:07 +01:00

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