Skip to content

Releases: Tapjoy/chore

v4.5.0

30 Sep 05:50
f919e0f
Compare
Choose a tag to compare
  • Replace json with multi_json so that the application decides with json implementation to use
  • Remove thread dependency as we're not relying on any of its functionality
  • Relax version pinning on dependencies
  • Remove unused development dependencies
  • Update specs to rspec 3 syntax
  • Update ruby version to 2.7.6

v4.4.0: Address race condition in dedupe handler

02 Jul 15:38
Compare
Choose a tag to compare

Full Changelog: v4.3.0...v4.4.0

#66


SQS messages were observed being removed well before they should have been based on SQS queue re-drive and visibility policies. After some discussion and investigation, it was determined that a race condition in the deduplication logic was causing messages to be removed from the queue before expiry of the effective retention window. This race condition happens when:

  1. A message is consumed from the SQS queue
  2. A record is added to the dedupe cache with a TTL based on the SQS queue's visibility timeout
    • this is the standard pattern

Between 1 and 2 some time passes, which was observed to be up to 2 seconds. Sometimes the message in the SQS queue is re-consumed before its record in the dedupe cache expires, causing the message to be removed from the queue early.

This issue is fixed by introducing a timeout_offset to the duplicate detection logic. The dedupe cache record TTL will be set with a timeout_offset-seconds shorter duration than the SQS queue's visibility timeout. While this introduces a surface area for duplicated work, the probability of such duplication is much higher in the first few seconds after a message is first consumed rather than the last few seconds before that message hits its visibility timeout.

v4.3.0: Support custom dedupe handlers

02 Jul 15:18
6490da4
Compare
Choose a tag to compare

Removes hard dependency on Dalli (and thus memcache) for duplicate detection.

#65

Add `around_publish` and `around_perform` job hooks

26 Jun 16:21
d01fed2
Compare
Choose a tag to compare
  • Added around_publish Job hook with parameters queue_name, job_hash, and &blk.
  • Added around_perform Job hook with parameters klass, message, and &blk.

Stop appending `_` to CLI `--queue_prefix` option

11 Mar 20:02
d799e3e
Compare
Choose a tag to compare

Instead, the entire prefix should be managed by the application consuming Chore. This allows for any logic that sets the queue prefix to be the same between a Chorefile (for consuming messages) and any Chore initializers (usually for publishing messages) in the application.

Update AWS SDK library

14 Sep 16:08
44844c5
Compare
Choose a tag to compare

Features

  • AWS SDK library has been updated to support AWS authentication via
    Web Federated Identity
    • The API has jumped ahead 2 major versions, so some of the internals (e.g.
      Chore::UnitOfWork) had to be changed to accommodate its changes. In the end, however,
      this update is designed to function as a drop-in replacement for earlier versions of Chore

Fixed bugs

  • Some of the SQS specs were not actually testing output values

Cleanups

  • Many more YARD docs
  • Documented the release process
  • Mild overhaul of the base README

Clean shutdown master on restart

27 Mar 22:49
Compare
Choose a tag to compare
v2.0.4

Update version to 2.0.4