Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

safe_poller

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

safe_poller

  • 0.0.1
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Gem Version test rubocop Ruby Style Guide Ruby Version

Safe Poller

SafePoller is a Ruby gem that provides a safe and reliable way to perform periodic polling operations in multi-threaded environments. It offers a simple and intuitive API for running a block of code at a defined interval, while ensuring thread safety and preventing potential race conditions. SafePoller allows developers to focus on implementing their logic without worrying about thread safety issues.

Installation

Install the gem and add to the application's Gemfile by executing:

$ bundle add safe_poller

Or add the following line to the application's Gemfile:

gem 'safe_poller', github: 'nejdetkadir/safe_poller', branch: 'main'

If bundler is not being used to manage dependencies, install the gem by executing:

gem install safe_poller

Usage

To use SafePoller, simply call the SafePoller.poll method, passing in a block of code to be executed at the specified interval:

poller = SafePoller.poll(interval: 2.0) do
  # Code to be executed at 2-second intervals
end

By default, the interval is set to 1 second. You can also specify the duration of the poll by using the SafePoller.poll_for method:

poller = SafePoller.poll_for(30, interval: 2.0) do
  # Code to be executed every 2 seconds for 30 seconds
end

Or, you can specify the end time of the poll using the SafePoller.poll_until method:

end_time = Time.now + 60
poller = SafePoller.poll_until(end_time, interval: 2.0) do
  # Code to be executed every 2 seconds until 1 minute from now
end

You can pause and resume the poller using the pause and resume methods, respectively:

poller.pause # Pauses the poller
poller.resume # Resumes the poller

You can check if the poller is currently running or paused using the running? and paused? methods, respectively:

poller.running? # Returns true if the poller is running, false otherwise
poller.paused? # Returns true if the poller is paused, false otherwise

You can stop the poller using the stop method:

poller.stop # Stops the poller

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/nejdetkadir/safe_poller. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

License

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

Code of Conduct

Everyone interacting in the SafePoller project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

FAQs

Package last updated on 18 Apr 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc