Download the PHP package iron-io/iron_worker without Composer
On this page you can find all versions of the php package iron-io/iron_worker. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download iron-io/iron_worker
More information about iron-io/iron_worker
Files in iron-io/iron_worker
Package iron_worker
Short Description Client library for IronWorker (multi-language worker platform that runs tasks in the background, in parallel, and at scale.)
License MIT
Homepage http://github.com/iron-io/iron_worker_php
Informations about the package iron_worker
iron_worker_php is PHP language binding for IronWorker.
IronWorker is a massively scalable background processing system. See How It Works
Getting Started
Branches
1.*
- Laravel 4.0/4.1/4.2/5.0 compatible, PHP 5.2 compatible version. No namespaces.2.*
- Laravel 5.1+ compatible, PSR-4 compatible version with namespaces.master
branch - same as2.*
Get credentials
To start using iron_worker_php, you need to sign up and get an oauth token.
- Go to http://iron.io/ and sign up.
- Get an Oauth Token at http://hud.iron.io/tokens
Install iron_worker_php
There are two ways to use iron_worker_php:
Using composer
Create composer.json
file in project directory:
Do composer install
(install it if needed: https://getcomposer.org/download/)
And use it:
Using classes directly (strongly not recommended)
- Copy classes from
src
to target directory - Grab IronCore classes there and copy to target directory
- Include them all.
Configure
Three ways to configure IronWorker:
-
Passing array with options:
-
Passing ini file name which stores your configuration options. Rename sample_config.ini to config.ini and include your Iron.io credentials (
token
andproject_id
): -
Automatic config search - pass zero arguments to constructor and library will try to find config file in following locations:
iron.ini
in current directoryiron.json
in current directoryIRON_WORKER_TOKEN
,IRON_WORKER_PROJECT_ID
and other environment variablesIRON_TOKEN
,IRON_PROJECT_ID
and other environment variables.iron.ini
in user's home directory.iron.json
in user's home directory
Creating a Worker
Here's an example worker:
Upload code to server
Using CLI tool (preferred)
- Get CLI tool
- Download or create
iron.json
config file with project_id/password -
Create
HelloWorld.worker
file, example: - Upload!
Worker examples
You can find worker examples here: iron_worker_examples
Queueing a Worker
queueing options
- priority: The priority queue to run the task in. Valid values are 0, 1, and 2. 0 is the default.
- timeout: The maximum runtime of your task in seconds. No task can exceed 3600 seconds (60 minutes). The default is 3600 but can be set to a shorter duration.
- delay: The number of seconds to delay before actually queuing the task. Default is 0.
- label: Optional text label for your task.
- cluster: cluster name ex: "high-mem" or "dedicated". This is a premium feature for customers to have access to more powerful or custom built worker solutions. Dedicated worker clusters exist for users who want to reserve a set number of workers just for their queued tasks. If not set default is set to "default" which is the public IronWorker cluster.
Scheduling a Worker
postScheduleAdvanced($name, $payload, $start_at, $label = null, $run_every = null, $end_at = null, $run_times = null, $priority = null, $cluster = null)
If you want to run worker tasks in specific time intervals, once at a particular time, or n number of things starting at a specific time you should schedule it:
scheduling options
- run_every: The amount of time, in seconds, between runs. By default, the task will only run once. run_every will return a 400 error if it is set to less than 60.
- end_at: The time tasks will stop being queued. Should be a time or datetime.
- run_times: The number of times a task will run.
- priority: The priority queue to run the job in. Valid values are 0, 1, and 2. The default is 0. Higher values means
- tasks spend less time in the queue once they come off the schedule.
- start_at: The time the scheduled task should first be run.
- label: Optional label for adding custom labels to scheduled tasks.
- cluster: cluster name ex: "high-mem" or "dedicated". If not set default is set to "default" which is the public IronWorker cluster.
Status of a Worker
To get the status of a worker, you can use the method.
Get Worker Log
Use any function that print text inside your worker to put messages to log.
Loading the Task Data Payload
To provide Payload to your worker simply put an array with any content you want.
When your code is executed, it will be passed four program arguments:
- -id - The task id.
- -payload - the filename containing the data payload for this particular task.
- -d - the user writable directory that can be used while running your job.
- -config - the filename containing config data (if available) for particular code.
IronWorker provide functions getArgs()
, getPayload()
, getConfig()
in your worker to help you using payload:
Setting Task Priority
You can specify priority of the task by setting the corresponding parameter.
Value of priority parameter means the priority queue to run the task in. Valid values are 0, 1, and 2. 0 is the default.
Setting progress status
To set current task progress, just call setProgress($percent, $message)
inside your worker.
- percent - A percentage value that can be set to show how much progress a task is making
- msg - A human readable message string that can be used when showing the status of a task
To retrieve this data on client side, use $worker->getTaskDetails($task_id);
Troubleshooting
http error: 0
If you see Uncaught exception 'Http_Exception' with message 'http error: 0 | '
it most likely caused by misconfigured cURL https certificates.
There are two ways to fix this error:
- Disable SSL certificate verification - add this line after IronWorker initialization:
$worker->ssl_verifypeer = false;
- Switch to http protocol - add this to configuration options:
protocol = http
andport = 80
- Fix the error! Recommended solution: download actual certificates - cacert.pem and add them to
php.ini
:
Full Documentation
You can find more documentation here:
- http://dev.iron.io Full documetation for iron.io products.
- IronWorker PHP reference.
- IronWorker PHP Wiki pages.
- IronWorker PHP Examples
Note for Developers
You can test this library by modifying it and setting up a symbolic link to your local code after you run composer install
on the Dockerworker example. See http://blog.grossi.io/2013/testing-your-packagistcomposer-package-locally/ for a detailed description on the Composer file layout and the symlinking strategy.