Cross Reference: timeout_worker.rb
xref
: /
ontohub
/
lib
/
timeout_worker.rb
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
timeout_worker.rb revision 1a7c903d7c95e94f306f7a41de9f6d607448dbe3
1516
N/A
class
TimeoutWorker
<
BaseWorker
581
N/A
class
Error
< ::
StandardError
;
end
581
N/A
class
TimeOutNotSetError
<
Error
;
end
581
N/A
581
N/A
RESCHEDULE_TIME
=
30
# minutes
581
N/A
581
N/A
sidekiq_options
queue
:
'default'
581
N/A
581
N/A
def
self.start
_timeout_clock
(
ontology_version_id
,
hours_offset
=
nil
)
581
N/A
hours_offset
||=
timeout_limit
581
N/A
self.perform
_in
(
hours_offset.hours
,
ontology_version_id
)
581
N/A
end
581
N/A
581
N/A
def
self.timeout
_limit
581
N/A
raise
TimeOutNotSetError
unless
Settings.ontology
_parse_timeout
581
N/A
Settings.ontology
_parse_timeout
581
N/A
end
581
N/A
581
N/A
581
N/A
def
perform
(
ontology_version_id
)
581
N/A
version
=
OntologyVersion.find
(
ontology_version_id
)
581
N/A
if
state_not_terminal
?
(
version
)
1899
N/A
version.update
_state
!
(
'failed'
,
"The job reached the timeout limit of #{
self.class.timeout
_limit} hours."
)
1895
N/A
end
1899
N/A
end
581
N/A
581
N/A
def
state_not_terminal
?
(
ontology_version
)
581
N/A
!
(
ontology_version.state
==
'failed'
||
ontology_version.state
==
'done'
)
817
N/A
end
1715
N/A
581
N/A
end
742
N/A