Sha256: 20238f7355a6ac0ca71b7aa751f557730f380468b65ecedfb2e9ab94e6b26eec
Contents?: true
Size: 1.95 KB
Versions: 3
Compression:
Stored size: 1.95 KB
Contents
require "ext/mysql-binlog-connector-java-#{Ecco::MYSQL_BINLOG_CONNECTOR_VERSION}.jar" require "ecco/row_event_listener" require "ecco/save_event_listener" require "ecco/lifecycle_failure_listener" require "ecco/error" module Ecco class Client DEFAULT_CONNECT_TIMEOUT = 3000 # ms extend Forwardable def_delegators :@client, :set_server_id, :get_server_id def_delegators :@client, :set_keep_alive, :is_keep_alive def_delegators :@client, :set_keep_alive_interval, :get_keep_alive_interval def_delegators :@client, :set_keep_alive_connect_timeout, :get_keep_alive_connect_timeout def_delegators :@client, :set_binlog_filename, :get_binlog_filename def_delegators :@client, :set_binlog_position, :get_binlog_position java_import com.github.shyiko.mysql.binlog.BinaryLogClient java_import java.io.IOException def initialize(hostname: "localhost", port: 3306, username:, password:) @client = BinaryLogClient.new(hostname, port, username, password) @row_event_listener = RowEventListener.new(self) @client.register_event_listener(@row_event_listener) @save_event_listener = SaveEventListener.new(self) @client.register_event_listener(@save_event_listener) @lifecycle_failure_listener = LifecycleFailureListener.new @client.register_lifecycle_listener(@lifecycle_failure_listener) end def on_save_position(&block) @save_event_listener.callback = block end def on_row_event(&block) @row_event_listener.callback = block end def on_communication_failure(&block) @lifecycle_failure_listener.callback = block end def start @client.connect rescue IOException => e raise Ecco::Error::ConnectionError, e.get_message end def start_in_thread(connect_timeout: DEFAULT_CONNECT_TIMEOUT) @client.connect(connect_timeout) end def connected? @client.is_connected end def stop @client.disconnect end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ecco-0.7.0-java | lib/ecco/client.rb |
ecco-0.6.1-java | lib/ecco/client.rb |
ecco-0.6.0-java | lib/ecco/client.rb |