-
Notifications
You must be signed in to change notification settings - Fork 13
IronWorker in 5 Minutes
- Sign up at www.iron.io. You get 5 hours of compute time per month free!
- Go to the Project List and create a project.
- Name it "Test Project" or "Project MyWorker".
- Keep this Project tab open because you'll want to check the status of the test job in a later step.
Install the IronWorker Ruby gem in your dev environment. You'll be creating worker jobs and sending them to IronWorker from your application. (Note that IronWorker works with Ruby >v 1.9. It will not work with earlier versions.)
gem install iron_worker
Create a file called my_worker.rb and enter the following:
require 'iron_worker'
class MyWorker < IronWorker::Base
attr_accessor :x
# The run method is what IronWorker calls to run your worker
def run
x.times do |n|
log "I'm doing something #{n.to_s}!"
sleep 2
end
end
end
The run method is what gets called when the worker runs. Now that we have a worker that does something, so let's run it.
Create another file called run_my_worker.rb in the same directory as my_worker.rb and put the following in it:
require 'iron_worker'
require_relative 'my_worker'
IronWorker.configure do |config|
config.token = 'TOKEN'
config.project_id = 'PROJECT_ID'
end
worker = MyWorker.new
worker.x = 10
worker.run_local
Tokens can be found on the API Tokens tab under the Account link in HUD. Your project IDs can be found on the projects page. You can create multiple tokens that can exist across projects. Each project has a unique project_ID so make sure you're using the right ID for each project.
Now run the worker with:
% ruby run_my_worker.rb
Does your script run ok locally? If so, then it's time to send it off to IronWorker to run it in the cloud.
With a tiny little change to run_my_worker.rb, you'll be running your workers in the cloud.
Comment out the worker.run_local
line and add worker.queue
instead so your script now looks like this (except it will have your own token/project_id).
require 'iron_worker'
require_relative 'my_worker'
IronWorker.configure do |config|
config.token = 'TOKEN'
config.project_id = 'PROJECT_ID'
end
worker = MyWorker.new
worker.x = 10
#worker.run_local
worker.queue
Now run it again with:
% ruby run_my_worker.rb
It should initialize and upload your worker to IronWorker to run in the cloud.
Click the "Jobs" tab in the IronWorker dashboard and you'll see the status of your worker! It should either be running or completed.
That's all there is to it!