Skip to content

Latest commit

 

History

History
83 lines (55 loc) · 1.84 KB

README.md

File metadata and controls

83 lines (55 loc) · 1.84 KB

statement_timeout

CI Gem Version

Use statement_timeout to wrap an Active Record transaction or query in a local statement timeout.

This gem was extracted from Keygen.

Sponsored by:

Keygen

A fair source software licensing and distribution API.

Installation

Add this line to your application's Gemfile:

gem 'statement_timeout'

And then execute:

$ bundle

Or install it yourself as:

$ gem install statement_timeout

Usage

User.statement_timeout 42.minutes do
  some_expensive_operation
end

User.posts.statement_timeout 10.seconds do
  some_cheap_operation
end

Post.statement_timeout 10.minutes do |conn|
  conn.transaction { archive_old_posts }
end

Tag.statement_timeout 6.hours do |conn|
  conn.execute 'VACUUM ANALYZE tags'
end

Supported databases

We currently support PostgreSQL. We'd love contributions that add MySQL, MariaDB, and SQLite support, but we probably won't add it ourselves.

Supported Rubies

statement_timeout supports Ruby 3.1 and above. We encourage you to upgrade if you're on an older version. Ruby 3 provides a lot of great features, like better pattern matching and a new shorthand hash syntax.

Is it any good?

Yes.

Contributing

If you have an idea, or have discovered a bug, please open an issue or create a pull request.

License

The gem is available as open source under the terms of the MIT License.