public void timeout(final long key, final JobRecord record) { final DirectBuffer type = record.getType(); final long deadline = record.getDeadline(); validateParameters(type, deadline); zeebeDb.batch( () -> { createJob(key, record, type); removeJobDeadline(deadline); }); }
private void assertJobRecordIsEqualTo(final JobRecord jobRecord, final JobRecord expected) { assertThat(jobRecord.getDeadline()).isEqualTo(expected.getDeadline()); assertThat(jobRecord.getWorker()).isEqualTo(expected.getWorker()); assertThat(jobRecord.getRetries()).isEqualTo(expected.getRetries()); assertThat(jobRecord.getType()).isEqualTo(expected.getType()); assertThat(jobRecord.getCustomHeaders()).isEqualTo(expected.getCustomHeaders()); assertThat(jobRecord.getPayload()).isEqualTo(expected.getPayload()); }
public void timeout(final long key, final JobRecord record) { final DirectBuffer type = record.getType(); final long deadline = record.getDeadline(); validateParameters(type, deadline); zeebeDb.batch( () -> { createJob(key, record, type); removeJobDeadline(deadline); }); }
private void assertJobRecordIsEqualTo(final JobRecord jobRecord, final JobRecord expected) { assertThat(jobRecord.getDeadline()).isEqualTo(expected.getDeadline()); assertThat(jobRecord.getWorker()).isEqualTo(expected.getWorker()); assertThat(jobRecord.getRetries()).isEqualTo(expected.getRetries()); assertThat(jobRecord.getType()).isEqualTo(expected.getType()); assertThat(jobRecord.getCustomHeaders()).isEqualTo(expected.getCustomHeaders()); assertThat(jobRecord.getPayload()).isEqualTo(expected.getPayload()); }
public void delete(long key, JobRecord record) { final DirectBuffer type = record.getType(); final long deadline = record.getDeadline(); zeebeDb.batch( () -> { jobKey.wrapLong(key); jobsColumnFamily.delete(jobKey); statesJobColumnFamily.delete(jobKey); makeJobNotActivatable(type); removeJobDeadline(deadline); }); }
public void delete(long key, JobRecord record) { final DirectBuffer type = record.getType(); final long deadline = record.getDeadline(); zeebeDb.batch( () -> { jobKey.wrapLong(key); jobsColumnFamily.delete(jobKey); statesJobColumnFamily.delete(jobKey); makeJobNotActivatable(type); removeJobDeadline(deadline); }); }
public void activate(final long key, final JobRecord record) { final DirectBuffer type = record.getType(); final long deadline = record.getDeadline(); validateParameters(type, deadline); zeebeDb.batch( () -> { updateJobRecord(key, record); updateJobState(State.ACTIVATED); makeJobNotActivatable(type); deadlineKey.wrapLong(deadline); deadlinesColumnFamily.put(deadlineJobKey, DbNil.INSTANCE); }); }
public void activate(final long key, final JobRecord record) { final DirectBuffer type = record.getType(); final long deadline = record.getDeadline(); validateParameters(type, deadline); zeebeDb.batch( () -> { updateJobRecord(key, record); updateJobState(State.ACTIVATED); makeJobNotActivatable(type); deadlineKey.wrapLong(deadline); deadlinesColumnFamily.put(deadlineJobKey, DbNil.INSTANCE); }); }
public void fail(long key, JobRecord updatedValue) { final DirectBuffer type = updatedValue.getType(); final long deadline = updatedValue.getDeadline(); validateParameters(type, deadline); zeebeDb.batch( () -> { updateJobRecord(key, updatedValue); final State newState = updatedValue.getRetries() > 0 ? State.ACTIVATABLE : State.FAILED; updateJobState(newState); if (newState == State.ACTIVATABLE) { makeJobActivatable(type); } removeJobDeadline(deadline); }); }
public void fail(long key, JobRecord updatedValue) { final DirectBuffer type = updatedValue.getType(); final long deadline = updatedValue.getDeadline(); validateParameters(type, deadline); zeebeDb.batch( () -> { updateJobRecord(key, updatedValue); final State newState = updatedValue.getRetries() > 0 ? State.ACTIVATABLE : State.FAILED; updateJobState(newState); if (newState == State.ACTIVATABLE) { makeJobActivatable(type); } removeJobDeadline(deadline); }); }
@Test public void shouldDeleteActivatableJob() { // given final long key = 1L; final JobRecord jobRecord = newJobRecord(); // when jobState.create(key, jobRecord); jobState.delete(key, jobRecord); // then assertThat(jobState.exists(key)).isFalse(); assertThat(jobState.isInState(key, State.NOT_FOUND)).isTrue(); assertThat(jobState.getJob(key)).isNull(); refuteListedAsActivatable(key, jobRecord.getType()); refuteListedAsTimedOut(key, jobRecord.getDeadline() + 1); }
@Test public void shouldDeleteActivatableJob() { // given final long key = 1L; final JobRecord jobRecord = newJobRecord(); // when jobState.create(key, jobRecord); jobState.delete(key, jobRecord); // then assertThat(jobState.exists(key)).isFalse(); assertThat(jobState.isInState(key, State.NOT_FOUND)).isTrue(); assertThat(jobState.getJob(key)).isNull(); refuteListedAsActivatable(key, jobRecord.getType()); refuteListedAsTimedOut(key, jobRecord.getDeadline() + 1); }
@Test public void shouldDeleteActivatedJob() { // given final long key = 1L; final JobRecord jobRecord = newJobRecord(); // when jobState.create(key, jobRecord); jobState.activate(key, jobRecord); jobState.delete(key, jobRecord); // then assertThat(jobState.exists(key)).isFalse(); assertThat(jobState.isInState(key, State.NOT_FOUND)).isTrue(); assertThat(jobState.getJob(key)).isNull(); refuteListedAsActivatable(key, jobRecord.getType()); refuteListedAsTimedOut(key, jobRecord.getDeadline() + 1); }
@Test public void shouldCreateJobEntry() { // given final long key = 1L; final JobRecord jobRecord = newJobRecord(); // when jobState.create(key, jobRecord); // then assertThat(jobState.exists(key)).isTrue(); assertJobState(key, State.ACTIVATABLE); assertJobRecordIsEqualTo(jobState.getJob(key), jobRecord); assertListedAsActivatable(key, jobRecord.getType()); refuteListedAsTimedOut(key, jobRecord.getDeadline() + 1); }
@Test public void shouldCreateJobEntry() { // given final long key = 1L; final JobRecord jobRecord = newJobRecord(); // when jobState.create(key, jobRecord); // then assertThat(jobState.exists(key)).isTrue(); assertJobState(key, State.ACTIVATABLE); assertJobRecordIsEqualTo(jobState.getJob(key), jobRecord); assertListedAsActivatable(key, jobRecord.getType()); refuteListedAsTimedOut(key, jobRecord.getDeadline() + 1); }
@Test public void shouldActivateJob() { // given final long key = 1L; final JobRecord jobRecord = newJobRecord(); // when jobState.create(key, jobRecord); jobState.activate(key, jobRecord); // then assertThat(jobState.exists(key)).isTrue(); assertJobState(key, State.ACTIVATED); assertJobRecordIsEqualTo(jobState.getJob(key), jobRecord); refuteListedAsActivatable(key, jobRecord.getType()); assertListedAsTimedOut(key, jobRecord.getDeadline() + 1); }
@Test public void shouldTimeoutJob() { // given final long key = 1L; final JobRecord jobRecord = newJobRecord(); // when jobState.create(key, jobRecord); jobState.activate(key, jobRecord); jobState.timeout(key, jobRecord); // then assertThat(jobState.exists(key)).isTrue(); assertJobState(key, State.ACTIVATABLE); assertJobRecordIsEqualTo(jobState.getJob(key), jobRecord); assertListedAsActivatable(key, jobRecord.getType()); refuteListedAsTimedOut(key, jobRecord.getDeadline() + 1); }
@Test public void shouldFailJobWithRetriesLeft() { // given final long key = 1L; final JobRecord jobRecord = newJobRecord().setRetries(1); // when jobState.create(key, jobRecord); jobState.activate(key, jobRecord); jobState.fail(key, jobRecord); // then assertThat(jobState.exists(key)).isTrue(); assertJobState(key, State.ACTIVATABLE); assertJobRecordIsEqualTo(jobState.getJob(key), jobRecord); assertListedAsActivatable(key, jobRecord.getType()); refuteListedAsTimedOut(key, jobRecord.getDeadline() + 1); }
@Test public void shouldFailJobWithRetriesLeft() { // given final long key = 1L; final JobRecord jobRecord = newJobRecord().setRetries(1); // when jobState.create(key, jobRecord); jobState.activate(key, jobRecord); jobState.fail(key, jobRecord); // then assertThat(jobState.exists(key)).isTrue(); assertJobState(key, State.ACTIVATABLE); assertJobRecordIsEqualTo(jobState.getJob(key), jobRecord); assertListedAsActivatable(key, jobRecord.getType()); refuteListedAsTimedOut(key, jobRecord.getDeadline() + 1); }
@Test public void shouldFailJobWithNoRetriesLeft() { // given final long key = 1L; final JobRecord jobRecord = newJobRecord().setRetries(0); // when jobState.create(key, jobRecord); jobState.activate(key, jobRecord); jobState.fail(key, jobRecord); // then assertThat(jobState.exists(key)).isTrue(); assertJobState(key, State.FAILED); assertJobRecordIsEqualTo(jobState.getJob(key), jobRecord); refuteListedAsActivatable(key, jobRecord.getType()); refuteListedAsTimedOut(key, jobRecord.getDeadline() + 1); }