forked from YACS-RCOS/yacs-notifications
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkarafka.rb
50 lines (42 loc) · 1.35 KB
/
karafka.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# frozen_string_literal: true
#require 'karafka'
# Non Ruby on Rails setup
ENV['RACK_ENV'] ||= 'development'
ENV['KARAFKA_ENV'] ||= ENV['RACK_ENV']
require 'bundler/setup'
Bundler.require(:default, ENV['KARAFKA_ENV'])
Karafka::Loader.load(Karafka::App.root)
require_relative 'app/consumers/sections_consumer'
require_relative 'app/consumers/courses_consumer'
# Ruby on Rails setup
# Remove whole non-Rails setup that is above and uncomment the 4 lines below
# ENV['RAILS_ENV'] ||= 'development'
# ENV['KARAFKA_ENV'] = ENV['RAILS_ENV']
# require ::File.expand_path('../config/environment', __FILE__)
# Rails.application.eager_load!
require 'karafka'
class KarafkaApp < Karafka::App
setup do |config|
config.kafka.seed_brokers = %w(kafka://kafka:9094)
config.client_id = 'notifications'
config.backend = :inline
config.batch_fetching = false
config.batch_consuming = false
# Uncomment this for Rails app integration
# config.logger = Rails.logger
end
after_init do |config|
end
Karafka.monitor.subscribe(Karafka::Instrumentation::Listener)
KarafkaApp.consumer_groups.draw do
consumer_group :notifications do
topic :section_change do
consumer SectionConsumer #Single message from section_change
end
end
topic :course_change do
consumer CourseConsumer
end
end
end
KarafkaApp.boot!