1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-11-30 21:32:30 +00:00

feat: new background work process

This removes all previous dependencies on RabbitMQ and the need to run separate cron and requeueing processes.
هذا الالتزام موجود في:
Adam Cooke
2024-02-14 13:46:04 +00:00
ملتزم من قبل Adam Cooke
الأصل 044058d0f1
التزام dc8e895bfe
69 ملفات معدلة مع 1675 إضافات و1186 حذوفات

عرض الملف

@@ -0,0 +1,23 @@
# frozen_string_literal: true
# == Schema Information
#
# Table name: ip_addresses
#
# id :integer not null, primary key
# hostname :string(255)
# ipv4 :string(255)
# ipv6 :string(255)
# priority :integer
# created_at :datetime
# updated_at :datetime
# ip_pool_id :integer
#
FactoryBot.define do
factory :ip_address do
ip_pool
ipv4 { "10.0.0.1" }
ipv6 { "2001:0db8:85a3:0000:0000:8a2e:0370:7334" }
hostname { "ip.example.com" }
end
end

عرض الملف

@@ -0,0 +1,23 @@
# frozen_string_literal: true
# == Schema Information
#
# Table name: ip_pools
#
# id :integer not null, primary key
# default :boolean default(FALSE)
# name :string(255)
# uuid :string(255)
# created_at :datetime
# updated_at :datetime
#
# Indexes
#
# index_ip_pools_on_uuid (uuid)
#
FactoryBot.define do
factory :ip_pool do
name { "Default Pool" }
default { true }
end
end

عرض الملف

@@ -0,0 +1,40 @@
# frozen_string_literal: true
# == Schema Information
#
# Table name: queued_messages
#
# id :integer not null, primary key
# attempts :integer default(0)
# batch_key :string(255)
# domain :string(255)
# locked_at :datetime
# locked_by :string(255)
# manual :boolean default(FALSE)
# retry_after :datetime
# created_at :datetime
# updated_at :datetime
# ip_address_id :integer
# message_id :integer
# route_id :integer
# server_id :integer
#
# Indexes
#
# index_queued_messages_on_domain (domain)
# index_queued_messages_on_message_id (message_id)
# index_queued_messages_on_server_id (server_id)
#
FactoryBot.define do
factory :queued_message do
server
message_id { 1234 }
domain { "example.com" }
batch_key { nil }
trait :locked do
locked_by { "worker1" }
locked_at { 5.minutes.ago }
end
end
end

عرض الملف

@@ -0,0 +1,10 @@
# frozen_string_literal: true
FactoryBot.define do
factory :webhook do
server
name { "Example Webhook" }
url { "https://example.com" }
all_events { true }
end
end

عرض الملف

@@ -0,0 +1,41 @@
# frozen_string_literal: true
# == Schema Information
#
# Table name: webhook_requests
#
# id :integer not null, primary key
# attempts :integer default(0)
# error :text(65535)
# event :string(255)
# locked_at :datetime
# locked_by :string(255)
# payload :text(65535)
# retry_after :datetime
# url :string(255)
# uuid :string(255)
# created_at :datetime
# server_id :integer
# webhook_id :integer
#
# Indexes
#
# index_webhook_requests_on_locked_by (locked_by)
#
FactoryBot.define do
factory :webhook_request do
webhook
url { "https://example.com" }
event { "ExampleEvent" }
payload { { "hello" => "world" } }
before(:create) do |webhook_request|
webhook_request.server = webhook_request.webhook&.server
end
trait :locked do
locked_by { "test" }
locked_at { 5.minutes.ago }
end
end
end

عرض الملف

@@ -0,0 +1,7 @@
# frozen_string_literal: true
FactoryBot.define do
factory :worker_role do
role { "test" }
end
end