lock CRUNCH_DISPATCH_LOCKFILE while running, if provided
authorTom Clegg <tom@clinicalfuture.com>
Wed, 31 Jul 2013 21:43:47 +0000 (17:43 -0400)
committerTom Clegg <tom@clinicalfuture.com>
Wed, 31 Jul 2013 21:43:47 +0000 (17:43 -0400)
services/api/script/crunch-dispatch.rb

index 5a7e1531c9fcc99c41fa2d813b64570aeb2a9181..388ef6bcea3929ce363d25146c854b8a62a32cd2 100755 (executable)
@@ -11,6 +11,14 @@ $signal = {}
   end
 end
 
+if ENV["CRUNCH_DISPATCH_LOCKFILE"]
+  lockfilename = ENV.delete "CRUNCH_DISPATCH_LOCKFILE"
+  lockfile = File.open(lockfilename, File::RDWR|File::CREAT, 0644)
+  unless lockfile.flock File::LOCK_EX|File::LOCK_NB
+    abort "Lock unavailable on #{lockfilename} - exit"
+  end
+end
+
 ENV["RAILS_ENV"] = ARGV[0] || ENV["RAILS_ENV"] || "development"
 
 require File.dirname(__FILE__) + '/../config/boot'