The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 2.41 - 2012-06-03

  • -Official Oracle support! DDL for a Helios Oracle schema is in 'sql/helios_schema_oracle.sql'. Please note: 1) you will need to adjust the Oracle schema to fit your environment (especially in regards to security and tablespaces) 2) while the Helios core supports Oracle, the Helios::Panoptes web admin interface still only supports MySQL (Panoptes support for Oracle is being worked on) -Helios::Service and Helios::Job: added deferredJob() and deferred() methods to defer processing of a job even though it was available in the job queue. These methods (for now) simply expose the declined() feature added in TheSchwartz 1.10; no Helios job history is recorded for a deferred job. Existing Helios users will need to upgrade their TheSchwartz library to 1.10 to use this feature. -Helios::Logger & Helios::Logger::Internal: moved driver creation to base Helios::Logger class so (if necessary) any loggers can get a Data::ObjectDriver to the collective database -Helios::Service & Helios::Logger: refactored getDriver() into initDriver() and getDriver() to eventually allow caching of Data::ObjectDriver objects. Anything needing an ObjectDriver to the collective database should just continue to call getDriver() and everything will work fine. -helios.pl: calls the service class prep() method on startup rather than getConfigFromIni() and getConfigFromDb() separately. This ensures proper setup of the loggers and Data::ObjectDriver db connection. -helios.pl: changed startup message so perl doesn't carp a warning if the service class doesn't have a $VERSION defined. -helios.pl: added registration_interval as a configuration parameter (previously it was hard-coded to 300 seconds in helios.pl). The "registration_interval" parameter is the amount of time (in secs) between service daemon "collective check-ins" (when a service daemon records its current status in the HELIOS_WORKER_REGISTRY_TB table). This table is used to create the Helios::Panoptes Collective Admin page, and is also useful for system monitoring and statistics. -helios.pl: set new defaults for zero_sleep_interval (10) and registration_interval (60). These new defaults should make Helios more responsive in low load situations and generally work better for more users out-of-the-box. (The old defaults geared Helios more for large volumes of long-running jobs on heavily loaded databases. The new defaults should work for a better range of small- to mid-sized loads.) If these new defaults create too much traffic for your database, you can set new larger values in your helios.ini file to decrease database traffic. -helios.pl: changes to prevent a worker from transmuting to a new service daemon (caused by database instability during transition between helios.pl, TheSchwartz->work(), and Helios::Service->work() -updated tests -submitJob.pl: fixed example in POD -Removed Bundle::Helios::RedHat. Ultimately, it didn't work any better (or worse) than using 'install Helios' command with the CPAN shell. Bundle::Helios::Generic seems to work well on other platforms, however. If you wish to use Helios with RHEL/CentOS 5.x or earlier, it is recommended you install a more recent version of Perl than 5.8.8 for ease of installation reasons.

Documentation

CGI script to receive jobs for Helios via HTTP POST
Launch a daemon to service jobs in the Helios job processing system
Submit a job to the Helios job processing system from the cmd line
Clean old log and history entries from the Helios database
a tutorial for getting started with Helios

Modules

install all Helios related modules
a distributed job processing system
a convenience class to import all Helios::Error exception classes
base exception class for Helios services
exception class for Helios indicating a database error occurred
fatal exception class for Helios indicating a job failed but can be re-attempted
fatal exception class for Helios indicating a job failed and the error was so serious the job should not be reattempted.
exception class for Helios indicating a job's args are invalid
exception class for Helios indicating an error occurred in the logging subsystem
exception class for Helios indicating a job was successful but it encountered errors during processing
base class for jobs in the Helios job processing system
Base class for sending Helios logging information to external loggers
Helios::Logger subclass implementing Helios internal logging
base class for metajob burst services in Helios
base class for services in the Helios job processing system
Helios::Service subclass useful for testing

Provides

in lib/Helios/ConfigParam.pm
in lib/Helios/JobHistory.pm
in lib/Helios/LogEntry.pm
in lib/Helios/LogEntry/Levels.pm