Ich versuche herauszufinden, wie man einen bestimmten Edelstein nur bei Bedarf lädt. Hier das Szenario:Autoload ein Juwel nur bei Bedarf in Schienen 3.2?
Ich benutze die große axlsx
Edelstein, um Excel-Dateien zu erstellen. Das Feature in meiner app dies ermöglicht wird nur aufgerufen, wenn der Benutzer eine Datei Excel fragen:
# model
require 'axlsx'
class AssessmentRaw < ActiveRecord::Base
# fun stuff here
def create_excel_file_io
xls = Axlsx::Package.new
# fun stuff here too
end
end
# a call in a controller
@assessment_raw_instance.create_excel_file_io
Mit derailed
Juwel kann ich sehen, dass axlsx
schwer auf Speicher ist:
axlsx: 9.8516 MiB (Also required by: /path-to-rails/app/models/assessment_raw)
axlsx/workbook/workbook.rb: 3.5391 MiB
axlsx/workbook/worksheet/worksheet.rb: 0.3477 MiB
axlsx/drawing/drawing.rb: 1.8438 MiB
zip: 1.6797 MiB
zip/entry: 0.3047 MiB
axlsx/stylesheet/styles.rb: 0.8516 MiB
htmlentities: 0.5273 MiB
htmlentities/flavors: 0.4453 MiB
htmlentities/mappings/expanded: 0.4258 MiB
axlsx/util/simple_typed_list.rb: 0.4727 MiB
So frage ich mich. .. wenn rails/ruby das Laden eines Edelsteins erlauben?
Ich hoffe, ich bin klar genug. :-) Danke!
Haben Sie darüber nachgedacht eine verzögerte Job Arbeitswarteschlange, wie resque? Das würde es komplett aus Ihrer Rails-App herausnehmen, obwohl es seinen eigenen Overhead erzeugen würde. – noel
Vielen Dank für den Kommentar. Mein Punkt ist es wirklich, beim App-Start weniger Speicher zu verbrauchen. –