Module: Gitlab::EventStore::Subscriber
- Extended by:
- ActiveSupport::Concern
- Included in:
- Ci::InitializePipelinesIidSequenceWorker, Ci::PipelineSchedules::DeactivateSchedulesWorker, Ci::TrackPipelineTriggerEventsWorker, Ci::Workloads::UpdateWorkloadStatusEventWorker, MergeRequests::CreateApprovalEventWorker, MergeRequests::CreateApprovalNoteWorker, MergeRequests::ExecuteApprovalHooksWorker, MergeRequests::ProcessAutoMergeFromEventWorker, MergeRequests::ProcessDraftNotePublishedWorker, MergeRequests::ResolveTodosAfterApprovalWorker, MergeRequests::UpdateHeadPipelineWorker, Ml::ExperimentTracking::AssociateMlCandidateToPackageWorker, Namespaces::UpdateRootStatisticsWorker, Pages::DeleteGroupPagesDeploymentsWorker, Pages::DeletePagesDeploymentWorker, Pages::ResetPagesDefaultDomainRedirectWorker, WorkItems::ProcessGroupTransferEventsWorker, WorkItems::ProcessProjectTransferEventsWorker, WorkItems::UserPreferences::DestroyWorker
- Defined in:
- lib/gitlab/event_store/subscriber.rb
Instance Method Summary collapse
- #handle_event(event) ⇒ Object
- #handle_event_in(delay, event) ⇒ Object
- #perform(event_type, data) ⇒ Object
Instance Method Details
#handle_event(event) ⇒ Object
43 44 45 |
# File 'lib/gitlab/event_store/subscriber.rb', line 43 def handle_event(event) raise NotImplementedError, 'you must implement this methods in order to handle events' end |
#handle_event_in(delay, event) ⇒ Object
39 40 41 |
# File 'lib/gitlab/event_store/subscriber.rb', line 39 def handle_event_in(delay, event) self.class.perform_in(delay, event.class.name, event.data) end |
#perform(event_type, data) ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/gitlab/event_store/subscriber.rb', line 29 def perform(event_type, data) raise InvalidEvent, event_type unless self.class.const_defined?(event_type) event_type_class = event_type.constantize Array.wrap(data).each do |single_event_data| handle_event(construct_event(event_type_class, single_event_data)) end end |