Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
1 change: 0 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ gem "pg", "~> 1.5"
gem "puma", "~> 6.5"
gem "rack-flash3", "~> 1.0"
gem "rackup", "~> 2.0"
gem "sidekiq", "~> 7.2"
gem "sinatra", "~> 4.0"

group :development, :test do
Expand Down
8 changes: 0 additions & 8 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,6 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
redis-client (0.22.1)
connection_pool
regexp_parser (2.10.0)
rerun (0.14.0)
listen (~> 3.0)
Expand Down Expand Up @@ -131,11 +129,6 @@ GEM
ruby-progressbar (1.13.0)
ruby2_keywords (0.0.5)
securerandom (0.4.1)
sidekiq (7.2.4)
concurrent-ruby (< 2)
connection_pool (>= 2.3.0)
rack (>= 2.2.4)
redis-client (>= 0.19.0)
simplecov (0.22.0)
docile (~> 1.1)
simplecov-html (~> 0.11)
Expand Down Expand Up @@ -190,7 +183,6 @@ DEPENDENCIES
rerun (~> 0.0)
rspec (~> 3.0)
rubocop (~> 1.70)
sidekiq (~> 7.2)
simplecov (~> 0.0)
sinatra (~> 4.0)
yard (>= 0.9.36, < 1.0)
Expand Down
2 changes: 0 additions & 2 deletions Procfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
# outboxer_load: bin/outboxer_load 100000
# sidekiq: bundle exec sidekiq -C config/sidekiq.yml -r ./config/sidekiq.rb
# outboxer_published_messages_deleter: bin/outboxer_published_messages_deleter
# outboxer_publisher: bin/outboxer_publisher
# outboxer_app: bundle exec rerun "rackup -p 4567"
outboxer_sidekiq_publisher_1: bin/outboxer_sidekiq_publisher
57 changes: 0 additions & 57 deletions app/jobs/event_created_job.rb

This file was deleted.

13 changes: 0 additions & 13 deletions app/jobs/outboxer_integration/complete_test_job.rb

This file was deleted.

11 changes: 0 additions & 11 deletions app/jobs/outboxer_integration/test_started_job.rb

This file was deleted.

10 changes: 0 additions & 10 deletions bin/console
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,12 @@
require "bundler/setup"

require "outboxer"
require "sidekiq"
require "irb"

Dir.glob(File.join(__dir__, "../app/models/**/*.rb")).each do |file|
require file
end

environment = ENV["RAILS_ENV"] || "development"
db_config = Outboxer::Database.config(environment: environment, concurrency: 1)
Outboxer::Database.connect(config: db_config)

Sidekiq.configure_client do |config|
redis_url = ENV["REDIS_URL"] || "redis://localhost:6379/0"
config.redis = { url: redis_url, size: 1 }
end

ActiveRecord::Base.logger = Logger.new($stdout)
ActiveRecord::Base.logger.level = Logger::DEBUG

Expand Down
15 changes: 12 additions & 3 deletions bin/outboxer_load
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,18 @@ queued_messages_count = 0
while queued_messages_count < max_messages_count
break if reader.wait_readable(0) && reader.gets.strip == "INT"

messageable_id = SecureRandom.hex(3)
Outboxer::Message.queue(messageable_type: "Event", messageable_id: messageable_id)
puts "queued message for Event::#{messageable_id}"
class Event
attr_accessor :id

def initialize(id:)
@id = id
end
end

messageable = Event.new(id: SecureRandom.hex(3))

Outboxer::Message.queue(messageable: messageable)
puts "queued message for #{messageable.class.name}/#{messageable.id}"
queued_messages_count += 1
end

Expand Down
15 changes: 4 additions & 11 deletions bin/outboxer_publisher
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
#!/usr/bin/env ruby

require "bundler/setup"
require "sidekiq"
require "outboxer"
require_relative "../app/jobs/event_created_job"

cli_options = Outboxer::Publisher.parse_cli_options(ARGV)
environment = cli_options.delete(:environment) || ENV["APP_ENV"] || ENV["RAILS_ENV"] || "development"
Expand All @@ -12,14 +10,6 @@ config = Outboxer::Publisher.config(environment: environment, path: config_path)
options = Outboxer::Publisher::PUBLISH_MESSAGE_DEFAULTS.merge(config.merge(cli_options))
logger = Outboxer::Logger.new($stdout, level: options[:log_level])

Sidekiq.configure_client do |client_config|
client_config.redis = {
url: ENV["REDIS_URL"] || "redis://localhost:6379",
size: options[:concurrency]
}
client_config.logger = logger
end

database_config = Outboxer::Database.config(
environment: environment, concurrency: options[:concurrency])

Expand All @@ -34,7 +24,10 @@ begin
heartbeat_interval: options[:heartbeat_interval],
logger: logger
) do |message|
EventCreatedJob.perform_async(message[:messageable_id], message[:messageable_type])
logger.info "Outboxer publishing message " \
"id=#{message[:id]} " \
"messageable_id=#{message[:messageable_id]} " \
"messageable_type=#{message[:messageable_type]}"
end
ensure
Outboxer::Database.disconnect(logger: logger)
Expand Down
27 changes: 0 additions & 27 deletions bin/sidekiq

This file was deleted.

27 changes: 0 additions & 27 deletions bin/sidekiqmon

This file was deleted.

9 changes: 0 additions & 9 deletions config.ru
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,11 @@ require "dotenv/load"

require "securerandom"
require "sinatra"
require "sidekiq"
require "sidekiq/web"
require "outboxer/web"

require_relative "app/models/application_record"
require_relative "app/models/event"

use Rack::Session::Cookie,
secret: ENV.fetch("SESSION_SECRET", nil), same_site: true, max_age: 86_400

map "/outboxer" do
run Outboxer::Web
end

map "/sidekiq" do
run Sidekiq::Web
end
27 changes: 0 additions & 27 deletions config/sidekiq.rb

This file was deleted.

15 changes: 0 additions & 15 deletions db/migrate/create_outboxer_integration_tests.rb

This file was deleted.

36 changes: 0 additions & 36 deletions generators/install_generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,42 +36,6 @@ def copy_migrations
migration_template(
"db/migrate/create_outboxer_signals.rb",
"db/migrate/create_outboxer_signals.rb")

migration_template(
"db/migrate/create_events.rb",
"db/migrate/create_events.rb")
end

def copy_models
copy_file(
"app/models/event.rb",
"app/models/event.rb")

copy_file(
"app/models/outboxer_integration/test_started_event.rb",
"app/models/outboxer_integration/test_started_event.rb")

copy_file(
"app/models/outboxer_integration/test_completed_event.rb",
"app/models/outboxer_integration/test_completed_event.rb")
end

def copy_jobs
copy_file(
"app/jobs/event_created_job.rb",
"app/jobs/event_created_job.rb")

copy_file(
"spec/jobs/event_created_job_spec.rb",
"spec/jobs/event_created_job_spec.rb")

copy_file(
"app/jobs/outboxer_integration/test_started_job.rb",
"app/jobs/outboxer_integration/test_started_job.rb")

copy_file(
"app/jobs/outboxer_integration/complete_test_job.rb",
"app/jobs/outboxer_integration/complete_test_job.rb")
end

def copy_bin_file
Expand Down
8 changes: 3 additions & 5 deletions lib/outboxer/message.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,12 @@ module Message
# @param messageable_id [Integer, nil] ID of the polymorphic messageable model
# @param time [Time] time context for setting timestamps.
# @return [Hash] a hash with message details including IDs and timestamps.
def queue(messageable: nil,
messageable_type: nil, messageable_id: nil,
time: ::Time)
def queue(messageable:, time: ::Time)
current_utc_time = time.now.utc

message = Models::Message.create!(
messageable_id: messageable&.id || messageable_id,
messageable_type: messageable&.class&.name || messageable_type,
messageable_id: messageable.id,
messageable_type: messageable.class.name,
status: Message::Status::QUEUED,
queued_at: current_utc_time,
buffered_at: nil,
Expand Down
Loading
Loading