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