Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Perl binding for cron.io

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 t
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Changes
Octocat-spinner-32 README.md
Octocat-spinner-32 dist.ini
Octocat-spinner-32 weaver.ini
README.md

NAME

Net::CronIO - Perl binding for cron.io

VERSION

version 0.01

SYNOPSIS

use 5.014;
use Net::CronIO;

my $cron = Net::CronIO->new(
    api_username => 'example',
    api_password => 'sekrit',
);

my $newjob = $cron->create_cron(
    name => 'Daily clean up job',
    url => 'http://example.com/blahblah/?cleanup=1',
    schedule => '46 0 * * *',
);

my $jobs = $cron->get_all_crons();

foreach my $job ( $jobs ) {
    if ( $job->{'url'} =~ /deadhost.com/ ) {
        $cron->update_cron(
          id => $job->{'id'},
          url => $job->{'url'} =~ s/deadhost\.com/example\.com/r,
        );
    }
}


say "deleted" if ( $cron->delete_cron( id => $jobs->[0]->{'id'} ) );

This is a Perl binding for the cron.io service. Cron is a Unix service which executes jobs on a periodic basis. The cron.io service contacts URLs using the same time period specification.

At the moment, the only way to generate a username and password for the service is by making a call on the create_user() method. Email verification is required before the credentials are valid.

ATTRIBUTES

api_username

You must supply an api_username for every method except create_user(). This can be done at object construction time, or later by calling the api_username() method.

api_password

You must supply an api_password for every method except create_user(). This can be done at object construction time, or later by calling the api_username() method.

METHODS

create_user()

This method requires the following parameters: email, username, password. This call will register a username/password with the service. Human intervention (in the form of an email verification) is required before your username/password are activated.

Once these credentials are active, you must provide them to this binding to execute other methods.

The return value is a string message provided by the API service (which evaluates to a true value in Perl.) This method dies on errors.

get_all_crons()

This method returns an arrayref containing hashes of all cron jobs for your username.

Hashes will contain the following keys:

  • id

This is an internal ID used by the service to identify a specific cron job. It is a required parameter for most of the other methods.

  • name

This is the name you assigned to a specific job.

  • url

The URL to contact at the given schedule specification.

  • schedule

This is a standard Unix cron style specification. See cron on Wikipedia for a verbose description of this format.

It is possible this call will return a reference to an empty list.

create_cron()

This method creates a new job. Required parameters are name, url, schedule.

The return value is a hash of id, plus the three params you provided.

get_cron()

This method retrieves a specific job by its id. id is a required parameter for this method. The return value is a hash as described above.

update_cron()

This method changes values with jobs which already have ids. id is a required parameter. Optional parameters are any or all of name, url, and/or schedule.

delete_cron()

This method removes a job from the service. id is a required parameter. On success, this method returns a true value. It dies on errors.

TESTING NOTE

To execute the full test suite, you must set CRONIO_API_USERNAME and CRONIO_API_PASSWORD environment variables with valid credentials.

AUTHOR

Mark Allen mrallen1@yahoo.com

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Mark Allen.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

Something went wrong with that request. Please try again.