# Solo Job Example

This example demonstrates how to ensure only one instance of the job is executed at any given time.

# Code

# jobs/solo.rb
class Solo < Jobly::Job
  solo

  on_skip do
    at 70, "Skipped"
    logger.info "Job was skipped"
  end

  def execute(name: 'bob')
    total 100
    at 10, "Initializing"
    sleep 20
    at 100, "Done"
  end
end

# Commands to Try

Before running these commands, it is recommended you open the Statuses tab in the web dashboard.

cd examples/solo

# Start the server and worker
foreman start

# From another terminal, send the Solo job twice
jobly send Solo
jobly send Solo

# Finally, while the job is still locked, send it again with different 
# parameters (and therefore, a different fingerprint).
jobly send Solo name:Bart