Module: Workers::StatusBroadcastable
- Extended by:
- ActiveSupport::Concern
- Includes:
- Sidekiq::Status::Worker, Overrides, PerformWrapper
- Included in:
- ActivityPrioritizationWorker, AmalyticsImportWorker, AmazonBuyBoxRecoveryWorker, AmazonCatalogItemListingsDataWorker, AmazonItemOperationWorker, AmazonPricingAutomationWorker, AmazonRefreshProductTypeSchemasWorker, ArticleLinkCheckerWorker, AutoBlogSchemaExtractionWorker, BannerImageBatchWorker, BlogSchemaExtractionWorker, BudgetGeneratorWorker, BudgetRefresherIncrementalWorker, BudgetRefresherWorkerWithStatus, CartonLabelWorker, CloudflareUpdatesWorker, CloudflareVideoMonitorWorker, CreateReceiptsWorker, CustomerMergeWorker, DataImportPrepWorker, EditReceiptsWorker, EmbeddingBatchQueueWorker, EnterOrderRoomsWorker, EnterQuoteRoomsWorker, GenerateExportedCatalogPacketWorker, GenerateMultipleRoomPlansWorker, GeneratePickSlipWorker, GenerateQuoteWorker, GetFreightquoteLoadNumber, ImageDuplicateFinderWorker, ImageFingerprintWorker, ImageFullAnalysisWorker, ImageGenerationWorker, ImageMetadataSuggestionsWorker, ImageProfileBulkSyncWorker, ImageUpscaleWorker, ImageVisionWorker, MailingCompletionWorker, MenardInventoryUploadWorker, OpportunityCopyWorker, PickItemsSaveWorker, PrintAllChecksWorker, PublicationVisionWorker, QuoteCopyWorker, RefreshInventoryPlanWorker, RefreshInventoryReportWorker, RefreshKpiCallDataWorker, RequoteWorker, RoomQuickRevisionWorker, SeoPageAnalysisWorker, ServiceRunner, ShipmentReceiptsWorker, SmartVideoPosterExtractionWorker, VideoPosterExtractionWorker, VideoTranscriptionWorker
- Defined in:
- app/concerns/workers/status_broadcastable.rb
Overview
Concern for Sidekiq workers that broadcast real-time status updates via Turbo Streams.
This includes Sidekiq::Status::Worker and extends it to also broadcast updates
whenever at(), total(), or store() are called. Subscribers listening to the job's
stream channel will receive instant updates instead of polling.
Usage:
class MyWorker
include Sidekiq::Job
include Workers::StatusBroadcastable # Includes Sidekiq::Status::Worker
def perform( = {})
total 5
at(1, 'Starting...')
# ... work ...
at(2, 'Processing...')
# ... more work ...
store redirect_to: '/some/path'
end
end
On the view side, subscribe to updates:
<%= turbo_stream_from "job_status:#@job@job.jid" %>
Defined Under Namespace
Modules: Overrides, PerformWrapper
Instance Attribute Summary collapse
-
#broadcast_status_updates ⇒ Object
Track whether broadcasting is enabled for this job.
Method Summary
Methods included from PerformWrapper
Methods included from Overrides
Instance Attribute Details
#broadcast_status_updates ⇒ Object
Track whether broadcasting is enabled for this job
67 68 69 |
# File 'app/concerns/workers/status_broadcastable.rb', line 67 def broadcast_status_updates @broadcast_status_updates end |