]> git.openstreetmap.org Git - rails.git/blobdiff - app/jobs/trace_importer_job.rb
Sketch out how to use the jobs queue for trace insertion and deletion
[rails.git] / app / jobs / trace_importer_job.rb
diff --git a/app/jobs/trace_importer_job.rb b/app/jobs/trace_importer_job.rb
new file mode 100644 (file)
index 0000000..d41de58
--- /dev/null
@@ -0,0 +1,19 @@
+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