From 6f45397cefc051c8f9947b40a7bc6d50ee3d11f5 Mon Sep 17 00:00:00 2001 From: Terry Brady Date: Fri, 14 Jun 2024 11:31:32 -0700 Subject: [PATCH] lock job on create --- buildspec.yml | 2 ++ src/main/java/org/cdlib/mrt/zk/Job.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/buildspec.yml b/buildspec.yml index fdf0f9a..21ed9fb 100644 --- a/buildspec.yml +++ b/buildspec.yml @@ -31,6 +31,8 @@ phases: - cp -r src/main/ruby/doc/* api/ruby - echo aws s3 cp --recursive api s3://${S3CFBUCKET}/api - aws s3 cp --recursive api s3://${S3CFBUCKET}/api + # recommendation from Brian + # - aws cloudfront create-invalidation --distribution-id #{cf_distro} --paths /dmps/* --region #{GLOBAL_REGION}` post_build: commands: #- aws s3 rm s3://${S3CFBUCKET}/api --recursive diff --git a/src/main/java/org/cdlib/mrt/zk/Job.java b/src/main/java/org/cdlib/mrt/zk/Job.java index f297c10..fd38d67 100644 --- a/src/main/java/org/cdlib/mrt/zk/Job.java +++ b/src/main/java/org/cdlib/mrt/zk/Job.java @@ -198,6 +198,9 @@ public static Job createJob(ZooKeeper client, String bid, int priority, JSONObje public static Job createJob(ZooKeeper client, String bid, int priority, JSONObject configuration, JSONObject identifiers, JSONObject metadata) throws MerrittZKNodeInvalid, KeeperException, InterruptedException, MerrittStateError { String id = QueueItemHelper.createId(client, Job.prefixPath()); Job job = new Job(id, bid, configuration); + if (!job.lock(client)) { + return null; + } job.createData(client, ZKKey.JOB_BID, bid); job.createData(client, ZKKey.JOB_PRIORITY, job.priority); job.createData(client, ZKKey.JOB_SPACE_NEEDED, job.spaceNeeded); @@ -212,6 +215,7 @@ public static Job createJob(ZooKeeper client, String bid, int priority, JSONObje job.setStatusWithPriority(client, Job.initStatus(), priority); job.setBatchStatePath(client); job.setJobStatePath(client); + job.unlock(client); return job; }