Revision history for Perl extension Helios. 2.40 Sun Jan 22 22:30:00 2012 -NEW Extensible logging subsystem (Helios::Logger) -NEW Helios::Error::BaseError exception class; acts as parent for entire Helios::Error:: hierarchy -NEW Helios::Service->metarun() method to modularize metajob handling and provide for extensible metajob support -NEW service run() and metarun() methods now run in an eval block as a process safety measure to catch uncaught exceptions. -NEW MP3IndexerService example application including in eg/ directory (StubService also rewritten for clarity) -REVISED Helios::Service->work() method no longer pays attention to return value of run() method (this feature was under- documented, misunderstood, and caused problems with eval {} and Try::Tiny exception handling -REWRITTEN submitJob.pl CGI script; supports sending XML stream in addition to form encoding, no longer dependent on HELIOS_CLASS_MAP -REWRITTEN Helios::TestService; more modern Perl and easier to understand -REWRITTEN install instructions, including specific instructions for Red Hat- and Ubuntu-based systems, and including CPAN install bundles (still experimental) -REWRITTEN Helios::Tutorial -Helios::Service: fixed MaxRetries() and RetryInterval() retry job methods -Helios::Job: changed failed() and failedNoRetry() to limit the char length of the error recorded to 254 chars. That's one less than the default size of the db field in the ERROR table, so it should prevent long errors like stack traces from unexpectedly blowing up worker processes and potentially losing jobs. -Revised dependencies: DBI 1.52 (shipped with RHEL/CentOS 5) XML::Simple 2.14 (shipped with RHEL/CentOS 5) Removed XML::SAX dependency (unnecessary) Removed XML::Namespace dependency (unnecessary) Removed XML::Parser dependency (unnecessary) -Removed deprecated classes, methods, and other files: Helios::Service->parseArgXML() (deprecated since 2.00) Helios::Worker (deprecated since 2.00) sql/helios_schema_20upgrade.sql -Updated copyright notices -Switch to "Linux-style" versioning: odd minor version == development version even minor version == stable version second minor number == patch level (we're still also using Perl-style _ for devel versions too) 2.23 Fri Sep 10 12:22:00 2010 -Helios::Job: fixed bug where getArgXML() returned undef if job object was vivified from job queue 2.22 Thu May 21 11:30:00 2009 -Helios::Service: fixed a bug in getFuncidFromDb() that caused services to fail to load properly if there was no entry for them in FUNCMAP table. -helios.pl: Several revisions to make it a more robust daemon. Now honors TERM signal; 'kill ' from a shell will attempt to safely shut down workers and daemon process w/o using Panoptes -Documentation updates 2.21 Thu May 14 17:00:00 2009 -added set/getJob() accessors to facilitate access to current Helios::Job object from methods other than run() 2.20 Tue Apr 28 18:00:00 2009 -various tweaks for cross-platform compatibility -documentation additions/corrections -added Helios::LogEntry::Levels to remove dependencies on Sys::Syslog -helios.pl: Cleaned up messages to console after daemonize -helios.pl + Helios::Service: added support for WORKER_MAX_TTL config param -Helios::Service: added JobClass() allow extensible Helios::Job classes -Helios::Service: added MaxRetries() and RetryInterval() to replace TheSchwartz's max_retries() and retry_interval() (this is not an abitrary change; it's to allow for extensions at the Helios layer in the future) -Helios::Service: added default run() method for class completeness (it throws a Helios::Error::FatalNoRetry error because you forgot to implement a run() method) -Helios::Service: removed logging to syslogd to eliminate Sys::Syslog dependency (see HeliosX::ExtLoggerService) -Helios::Service: added set/getFuncid(), getFuncidFromDb() and changed jobWaiting() to use them. This eliminates an unnecessary database query previously done every time jobsWaiting() was called -Helios::Service: added support for log_priority_threshold config param -Helios::Job: added getFailures() to access the number of times a job has previously failed 2.00 Fri Aug 01 02:00:00 2008 -First public production release (same as 1.90_26 w/more documentation) 1.90_26 Thu Jun 26 11:30:00 2008 -Helios 2.0 RC1 -NEW Helios 2.0 API Helios::Service Helios::Job Helios::MetajobBurstService Helios::ConfigParam Helios::JobHistory Helios::LogEntry Helios::TestService -helios.pl: added PID check to prevent 2 instances of a service running on the same server -helios.pl: added --clear-halt option to clear Worker Admin HALTs at the cmd line -helios.sql: new helios_worker_registry_tb.start_time field for uptime stats -submitJob.pl, helios_job_submit.pl, helios_job_clean.pl use new 2.0 API -eg/Stub/StubService.pm for example of new 2.0 API service class -new tests to test both 1.x and 2.x API 1.19_07 Thu May 29 14:00:00 2008 -added Helios.pm (for version checking & documentation) -added Helios::Job (for eventual refactoring) -added Helios::Test (for system testing) 1.19_06 Wed May 28 12:00:00 2008 -added LICENSE file that was left out -add helios_log_clean.pl utility to clean log, job history -added eg/Stub/StubWorker.pm as a worker class stub example 1.19 Mon May 19 12:00:00 2008 -First public release