Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@ def process(logger, options = {})
private

def handle_missing_labels(file_path, logger)
status = LinkedData::Models::SubmissionStatus.find('RDF_LABELS').first
callbacks = {
include_languages: true,
missing_labels: {
op_name: 'Missing Labels Generation',
required: true,
status: LinkedData::Models::SubmissionStatus.find('RDF_LABELS').first,
status: status,
artifacts: {
file_path: file_path
},
Expand All @@ -29,6 +30,12 @@ def handle_missing_labels(file_path, logger)

raw_paging = LinkedData::Models::Class.in(@submission).include(:prefLabel, :synonym, :label)
loop_classes(logger, raw_paging, @submission, callbacks)
rescue Exception => e
logger.error("#{e.class}: #{e.message}\n#{e.backtrace.join("\n\t")}")
logger.flush
@submission.add_submission_status(status.get_error_status)
@submission.save
raise e
end

def process_callbacks(logger, callbacks, action_name)
Expand Down Expand Up @@ -96,9 +103,18 @@ def loop_classes(logger, raw_paging, submission, callbacks)

begin
t0 = Time.now
page_classes = paging.page(page, size).all
total_pages = page_classes.total_pages
page_len = page_classes.length
page_classes = nil
total_pages = 0

begin
page_classes = paging.page(page, size).all
total_pages = page_classes.total_pages
page_len = page_classes.length
rescue StandardError => e
page_classes = []
logger.error("Error retrieving page #{page} for #{acr}: #{e.class}: #{e.message}")
logger.flush
end

# nothing retrieved even though we're expecting more records
if total_pages > 0 && page_classes.empty? && (prev_page_len == -1 || prev_page_len == size)
Expand All @@ -109,10 +125,18 @@ def loop_classes(logger, raw_paging, submission, callbacks)
j += 1
logger.error("Empty page encountered. Retrying #{j} times...")
sleep(2)
page_classes = paging.page(page, size).all
unless page_classes.empty?
logger.info("Success retrieving a page of #{page_classes.length} classes after retrying #{j} times...")
begin
page_classes = paging.page(page, size).all
total_pages = page_classes.total_pages
page_len = page_classes.length
unless page_classes.empty?
logger.info("Success retrieving a page of #{page_classes.length} classes after retrying #{j} times...")
end
rescue StandardError => e
page_classes = []
logger.error("Retry #{j} failed retrieving page #{page} for #{acr}: #{e.class}: #{e.message}")
end
logger.flush
end

if page_classes.empty?
Expand Down Expand Up @@ -166,6 +190,7 @@ def loop_classes(logger, raw_paging, submission, callbacks)
@submission.save
end
end
ensure
RequestStore.store[:requested_lang] = nil if incl_lang
end

Expand Down Expand Up @@ -317,4 +342,3 @@ def generate_missing_labels_post(artifacts = {}, logger, pagging)

end
end

Loading