SimpleQS is Ruby wrapper for Amazon Simple Queue Service (SQS) REST API. It allows you perform all kind of calls on queues and messages.
Ruby
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example
lib
spec
.gitignore
CHANGELOG.md
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
TODO.md
simple_qs.gemspec

README.md

English

Installation

	[sudo] gem install simple_qs

Usage

	require 'simple_qs'
	SimpleQS.account_id = 'your-account-id'
	SimpleQS.access_key_id = 'YOUR_ACCESS_KEY'
	SimpleQS.secret_access_key = 'YOUR_SECRET_ACCESS_KEY'

Region

You can select region for queue:

	# :us_east_1      => 'sqs.us-east-1.amazonaws.com',
	# :us_west_1      => 'sqs.us-west-1.amazonaws.com',
	# :eu_west_1      => 'sqs.eu-west-1.amazonaws.com',
	# :ap_southeast_1 => 'sqs.ap-southeast-1.amazonaws.com'
	SimpleQS.host # => 'sqs.us-east-1.amazonaws.com'
	
	SimpleQS.host = :eu_west_1
	SimpleQS.host # => 'sqs.eu-west-1.amazonaws.com'

Queues

Create a queue:

	queue = SimpleQS::Queue.create('queue_name')

Or:

	SimpleQS::Queue.create('queue_name') do |queue|
		# ...
	end

Create a queue with specific default visibility timeout for received messages:

	SimpleQS::Queue.create('queue_name', 60) # Visibility timeout set to 60 secinds instead of default 30

List all account's queues:

	SimpleQS::Queue.list # returns list of SimpleQS::Queue objects

List all account's queues starting with 'test':

	SimpleQS::Queue.list('test')

Check if queue exists:

	SimpleQS::Queue.exists?('queue_name')

Change default visibility timeout for queue:

	SimpleQS::Queue.new('queue_name').set_visibility_timeout(120)

Change maximum message size for queue:

	SimpleQS::Queue.new('queue_name').set_maximum_message_size(65536)

Change message retention period:

	SimpleQS::Queue.new('queue_name').set_message_retention_period(1209600)

Set queue attributes:

	SimpleQS::Queue.new('queue_name').set_attributes({:VisibilityTimeout => 120, :Policy => "policy JSON here"})

Get queue attributes:

	SimpleQS::Queue.new('queue_name').get_attributes(:All)

Add permissions:

	SimpleQS::Queue.new('queue_name').add_permissions('testPerms', [
		{:account_id => '098166147350', :action => 'SendMessage'},
		{:account_id => '098166147350', :action => 'ReceiveMessage'}
	])

Remove permissions:

	SimpleQS::Queue.new('queue_name').remove_permissions('testPerms')

Delete queue:

	SimpleQS::Queue.new('queue_name').delete

Or:

	SimpleQS::Queue.delete('queue_name')

Messages

Send message:

	queue = SimpleQS::Queue.new('queue_name')
	queue.send_message('message 1')
	queue.send_message('message 2')

Or:

	SimpleQS::Message.send(queue, 'message 1')
	SimpleQS::Message.send(queue, 'message 2')

Receive message(s):

	queue.receive_messages # always returns array of messages
	queue.receive_messages(:All, 10, 70) # receive maximum 10 messages with all attributes (:All)
										 # and set for them visibility timeout to 70 seconds

Or:

	SimpleQS::Message.receive(queue)
	SimpleQS::Message.receive(queue, :All, 10, 70)

Resend received message:

	messages = queue.receive_messages
	messages.first.resend

Change visibility timeout for this message:

	messages.first.change_visibility(120) # Change to 120 seconds

Delete received message:

	messages.first.delete

TODO

See TODO file

Issues

ISSUES

Authors

Marjan Krekoten' (krekoten@gmail.com)

Українською

Встановлення

	[sudo] gem install simple_qs

Користування

	require 'simple_qs'
	SimpleQS.account_id = 'your-account-id'
	SimpleQS.access_key_id = 'YOUR_ACCESS_KEY'

	SimpleQS.secret_access_key = 'YOUR_SECRET_ACCESS_KEY'

Регіон

Можна обрати регіон, в якому буде створена черга:

	# :us_east_1      => 'sqs.us-east-1.amazonaws.com',
	# :us_west_1      => 'sqs.us-west-1.amazonaws.com',
	# :eu_west_1      => 'sqs.eu-west-1.amazonaws.com',
	# :ap_southeast_1 => 'sqs.ap-southeast-1.amazonaws.com'
	SimpleQS.host # => 'sqs.us-east-1.amazonaws.com'

	SimpleQS.host = :eu_west_1
	SimpleQS.host # => 'sqs.eu-west-1.amazonaws.com'

Черги

Створити чергу:

	queue = SimpleQS::Queue.create('queue_name')

Або:

	SimpleQS::Queue.create('queue_name') do |queue|
		# ...
	end

Створити чергу із специфічним обмеженням часу невидимості для отриманих повідомлень:

	SimpleQS::Queue.create('queue_name', 60) # Час невидимості встановленно на 60 секунд, натомість типових 30-ти

Перелічити всі черги даного рахунку:

	SimpleQS::Queue.list # returns list of SimpleQS::Queue objects

Перелічити всі черги даного рахунку, що починаються на 'test':

	SimpleQS::Queue.list('test')

Перевірити чи черга існує:

	SimpleQS::Queue.exists?('queue_name')

Змінити типовий час невидимості для даної черги:

	SimpleQS::Queue.new('queue_name').set_visibility_timeout(120)

Змінити максимальний розмір повідомлення:

	SimpleQS::Queue.new('queue_name').set_maximum_message_size(65536)

Змінити період зберігання повідомлень для черги:

	SimpleQS::Queue.new('queue_name').set_message_retention_period(1209600)

Встановити атрибути черги:

	SimpleQS::Queue.new('queue_name').set_attributes({:VisibilityTimeout => 120, :Policy => "policy JSON here"})

Отримати поточні атрибути черги:

	SimpleQS::Queue.new('queue_name').get_attributes(:All)

Надати дозволи:

	SimpleQS::Queue.new('queue_name').add_permissions('testPerms', [
		{:account_id => '098166147350', :action => 'SendMessage'},
		{:account_id => '098166147350', :action => 'ReceiveMessage'}
	])

Скасувати дозволи:

	SimpleQS::Queue.new('queue_name').remove_permissions('testPerms')

Видалити чергу:

	SimpleQS::Queue.new('queue_name').delete

Або:

	SimpleQS::Queue.delete('queue_name')

Повідомлення

Відправити повідомлення:

	queue = SimpleQS::Queue.new('queue_name')
	queue.send_message('message 1')
	queue.send_message('message 2')

Або:

	SimpleQS::Message.send(queue, 'message 1')
	SimpleQS::Message.send(queue, 'message 2')

Отримати повідомлення:

	queue.receive_messages # завжди повертає масив
	queue.receive_messages(:All, 10, 70) # отримати максимум 10 повідомлень зі всіма атрибутами (:All)
										 # та встановленим часом невидимості у 70 секунд

Або:

	SimpleQS::Message.receive(queue)
	SimpleQS::Message.receive(queue, :All, 10, 70)

Надіслати отримані повідомлення ще раз:

	messages = queue.receive_messages
	messages.first.resend

Змінити час невидимості для даного повідомлення:

	messages.first.change_visibility(120) # Встановити у 120 секунд

Видалити отримане повідомлення з черги:

	messages.first.delete

Що потрібно зробити

Дивіться TODO

Помилки, побажання і т.і.

ISSUES

Автори

Мар'ян Крекотень (krekoten@gmail.com)