diff options
author | Steve Kemp <steve@steve.org.uk> | 2012-11-21 14:05:53 +0000 |
---|---|---|
committer | Steve Kemp <steve@steve.org.uk> | 2012-11-21 14:05:53 +0000 |
commit | 2150107a82e9d4d2adb583c8656d0002ebdad18e (patch) | |
tree | b380d171d3e4e34f833296661c2f8b714ae3c0e7 /bin | |
parent | be5ffc73fc004b3d13a2510c07113c6a7f419931 (diff) |
Decouple the enqueuing from the parsing.
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/custodian-enqueue | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/bin/custodian-enqueue b/bin/custodian-enqueue index 23df794..c9d9232 100755 --- a/bin/custodian-enqueue +++ b/bin/custodian-enqueue @@ -50,9 +50,11 @@ # -# Implementation of our parser. +# Modules we require # +require 'beanstalk-client' require 'custodian/parser' +require 'getoptlong' @@ -63,11 +65,13 @@ if __FILE__ == $0 then $help = false $manual = false + $SERVER = "127.0.0.1:11300" begin opts = GetoptLong.new( [ "--dump", "-d", GetoptLong::NO_ARGUMENT ], [ "--test", GetoptLong::NO_ARGUMENT ], + [ "--server", GetoptLong::REQUIRED_ARGUMENT ], [ "--file", "-f", GetoptLong::REQUIRED_ARGUMENT ], [ "--help", "-h", GetoptLong::NO_ARGUMENT ], [ "--manual","-m", GetoptLong::NO_ARGUMENT ], @@ -79,6 +83,8 @@ if __FILE__ == $0 then ENV["DUMP"] = "1" when "--test" then ENV["TEST"] = "1" + when "--server" then + $SERVER = arg when "--file" then ENV["FILE"] = arg when "--timeout" then @@ -126,6 +132,16 @@ if __FILE__ == $0 then # + # Connected to the server + # + queue = Beanstalk::Pool.new([$SERVER]) + if ( ! queue ) + puts "Failed to connect to beanstalk server: #{$SERVER}" + exit 1 + end + + + # # Create the parser # mon = MonitorConfig.new( ENV['FILE'] ) @@ -138,9 +154,19 @@ if __FILE__ == $0 then end # - # Run + # Run the parser - and get callbacks when a new job is added. # - mon.parse_file() + mon.parse_file do |test| + + if ( ENV['TEST'] ) + # nop + elsif ( ENV['DUMP'] ) + puts test.to_json + else + queue.put( test.to_json ) + end + end + # # If there were errors then we'll not get this far. |