How do you implement Jobs with Perl?
Question:
Where can I get the Perl libraries for the Job Schedule API? There is a package main, do I get that with JobScheduler download or do I have to go to CPAN?
Answer:
It depends on the operating system:
- for Windows we do not distribute a library but use the scripting libraries from an existing ActiveState Perl implementation, see http://www.activestate.com.
- for Unix the library
libsosperlscript.so
should have been copied to thelib
directory by the installer. Moreover thelibperl.so
32Bit library from your Perl installation must be linked in thelib
directory.Example:
cd /[JobScheduler installation]/lib/ ln -s /usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE/libperl.so libperl.so
Keep in mind that:
- you could use
<job><process file="my_script.pl"/></job>
to use Perl as from the command line (my_script.pl
must be executable). This works with all versions of Perl, but no API methods of JobScheduler can be used. - you would use
<job><script language="perlscript"><include file="my_api_script.pl"/></job>
for a Perl script that makes use of JobScheduler API and requires the above libraries for Unix.
The API documentation is available:
- via the built-in JobScheduler Operations Center interface (JOC)
- at http://www.sos-berlin.com/doc/en/scheduler.doc/api/api-perl.xml
There is no such thing as a JobScheduler package for Perl as JobScheduler exposes its objects and methods directly, just use
# to make the object variables available ... use vars qw ($spooler $spooler_log $spooler_job $spooler_task); # ... then use the objects and methods, e.g to access a job parameter $spooler_task->params->value("request_stylesheet")
Some more complete examples of Perl jobs are given in the Solutions Pages of this site, see:
The given examples are mainly interesting as we provided job implementations for Perl, Java and Javascript: even if you do not intend to implement Web Services the source code and job documentations are useful to see how the API works equally for all languages.