-
-
08 Mar 2019 03:07:13 UTC
- Distribution: Beam-Runner
- Module version: 0.016
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Repository
- Issues (6)
- Testers (528 / 16 / 4)
- Kwalitee
Bus factor: 1- 95.11% Coverage
- License: perl_5
- Perl: v5.10.0
- Activity
24 month- Tools
- Download (35.79KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
NAME
Beam::Runnable::Single - Only allow one instance of this command at a time
VERSION
version 0.016
SYNOPSIS
### In a Runnable module package My::Runnable::Script; use Moo; with 'Beam::Runnable', 'Beam::Runnable::Single'; has '+pid_file' => ( default => '/var/run/runnable-script.pid' ); sub run { } ### In a container config file runnable: $class: My::Runnable::Script $with: - 'Beam::Runnable::Single' pid_file: /var/run/runnable-script.pid
DESCRIPTION
This role checks to ensure that only one instance of the command is running at a time. If another instance tries to run, it dies with an error instead.
Users should have access to read/write the path pointed to by "pid_file", and to read/write the directory containing the PID file.
If the command exits prematurely, the PID file will not be cleaned up. If this is undesirable, make sure to trap exceptions in your
run()
method and return the exit code you want.ATTRIBUTES
pid_file
The path to a file containing the PID of the currently-running script.
METHODS
run
This role wraps the
run
method of your runnable class to check that there is no running instance of this task (the PID file does not exist).SEE ALSO
AUTHOR
Doug Bell <preaction@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by Doug Bell.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
Module Install Instructions
To install Beam::Runner, copy and paste the appropriate command in to your terminal.
cpanm Beam::Runner
perl -MCPAN -e shell install Beam::Runner
For more information on module installation, please visit the detailed CPAN module installation guide.