-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
# Gemfile
gem "wurk"bundle installThat's it — Sidekiq::Worker, Sidekiq::Job, Sidekiq::Batch, Sidekiq::Limiter, Sidekiq.configure_server, and friends all resolve to Wurk. If you're coming from Sidekiq, see Migrating from Sidekiq for the one-line swap.
class HardWorker
include Sidekiq::Job
def perform(name, count)
# ...do the work...
end
end
HardWorker.perform_async("bob", 5) # enqueue now
HardWorker.perform_in(5.minutes, "bob", 5) # enqueue later
HardWorker.perform_at(1.hour.from_now, "bob", 5)Standalone:
bundle exec wurkOr, in a Rails app, the engine's railtie boots the swarm automatically after initialization (skip it with WURK_DISABLED=1, e.g. in the web process).
# config/routes.rb
mount Wurk::Engine => "/wurk"The precompiled SPA ships inside the gem — consumers never run Node. See The Dashboard to gate it behind your app's auth.
# config/initializers/wurk.rb
Wurk.configure_server do |config|
config.concurrency = 10
config.queues = %w[critical default low]
end- Periodic, Limiters and Batches — cron, rate limiting, and batches.
- Encryption — encrypt sensitive job arguments.
- Architecture — how the swarm actually runs your jobs.
These pages are generated from docs/wiki/ on main and republished on every merge. Edits made here are overwritten — send a pull request against that directory instead. Wurk is MIT-licensed; the full reference lives in docs/.
Evaluate
Start
Operate
Features
Elsewhere