-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding Pub/Sub docs and JS to dedent for the section header.
Also removing tabs from docs/_static/js/main.js
- Loading branch information
Showing
6 changed files
with
299 additions
and
251 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,251 +1,30 @@ | ||
``gcloud.pubsub`` API | ||
===================== | ||
.. toctree:: | ||
:maxdepth: 1 | ||
:hidden: | ||
|
||
Connection / Authorization | ||
-------------------------- | ||
Pub/Sub | ||
------- | ||
|
||
- Inferred defaults used to create connection if none configured explicitly: | ||
:mod:`gcloud.pubsub` | ||
~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
- credentials (derived from GAE / GCE environ if present). | ||
.. automodule:: gcloud.pubsub.__init__ | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
- ``project_id`` (derived from GAE / GCE environ if present). | ||
Connections | ||
~~~~~~~~~~~ | ||
|
||
- ``scopes`` | ||
.. automodule:: gcloud.pubsub.connection | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
Interacting with the API | ||
~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
Manage topics for a project | ||
--------------------------- | ||
|
||
Create a new topic for the default project: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> topic = Topic('topic_name') | ||
>>> topic.create() # API request | ||
|
||
Create a new topic for an explicit project: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> topic = Topic('topic_name', project_id='my.project') | ||
>>> topic.create() # API request | ||
|
||
Check for the existance of a topic: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> topic = Topic('topic_name') | ||
>>> topic.exists() # API request | ||
True | ||
|
||
List topics for the default project: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud import pubsub | ||
>>> [topic.name for topic in pubsub.list_topics()] # API request | ||
['topic_name'] | ||
|
||
List topics for an explicit project: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud import pubsub | ||
>>> topics = pubsub.list_topics(project_id='my.project') # API request | ||
>>> [topic.name for topic in topics] | ||
['topic_name'] | ||
|
||
Delete a topic: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> topic = Topic('topic_name') | ||
>>> topic.delete() # API request | ||
|
||
|
||
Publish messages to a topic | ||
--------------------------- | ||
|
||
Publish a single message to a topic, without attributes: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> topic = Topic('topic_name') | ||
>>> topic.publish('this is the message_payload') # API request | ||
<message_id> | ||
|
||
Publish a single message to a topic, with attributes: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> topic = Topic('topic_name') | ||
>>> topic.publish('this is another message_payload', | ||
... attr1='value1', attr2='value2') # API request | ||
<message_id> | ||
|
||
Publish a set of messages to a topic (as a single request): | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> topic = Topic('topic_name') | ||
>>> with topic.batch() as batch: | ||
... batch.publish('this is the first message_payload') | ||
... batch.publish('this is the second message_payload', | ||
... attr1='value1', attr2='value2') | ||
>>> list(batch) | ||
[<message_id1>, <message_id2>] | ||
|
||
.. note:: | ||
|
||
The only API request happens during the ``__exit__()`` of the topic | ||
used as a context manager. | ||
|
||
|
||
Manage subscriptions to topics | ||
------------------------------ | ||
|
||
Create a new pull subscription for a topic: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> from gcloud.pubsub.subscription import Subscription | ||
>>> topic = Topic('topic_name') | ||
>>> subscription = Subscription('subscription_name', topic) | ||
>>> subscription.create() # API request | ||
|
||
Create a new pull subscription for a topic with a non-default ACK deadline: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> from gcloud.pubsub.subscription import Subscription | ||
>>> topic = Topic('topic_name') | ||
>>> subscription = Subscription('subscription_name', ack_deadline=90) | ||
>>> subscription.create() # API request | ||
|
||
Create a new push subscription for a topic: | ||
|
||
.. doctest:: | ||
|
||
>>> ENDPOINT = 'https://example.com/hook' | ||
>>> from gcloud.pubsub.topic import Topic | ||
>>> from gcloud.pubsub.subscription import Subscription | ||
>>> topic = Topic('topic_name') | ||
>>> subscription = Subscription('subscription_name', push_endpoint=ENDPOINT) | ||
>>> subscription.create() # API request | ||
|
||
Check for the existence of a subscription: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> from gcloud.pubsub.subscription import Subscription | ||
>>> topic = Topic('topic_name') | ||
>>> subscription = Subscription('subscription_name', topic) | ||
>>> subscription.exists() # API request | ||
True | ||
|
||
Convert a pull subscription to push: | ||
|
||
.. doctest:: | ||
|
||
>>> ENDPOINT = 'https://example.com/hook' | ||
>>> from gcloud.pubsub.topic import Topic | ||
>>> from gcloud.pubsub.subscription import Subscription | ||
>>> topic = Topic('topic_name') | ||
>>> subscription = Subscription('subscription_name', topic) | ||
>>> subscription.modify_push_configuration(push_endpoint=ENDPOINT) # API request | ||
|
||
Convert a push subscription to pull: | ||
|
||
.. doctest:: | ||
|
||
>>> ENDPOINT = 'https://example.com/hook' | ||
>>> from gcloud.pubsub.topic import Topic | ||
>>> topic = Topic('topic_name') | ||
>>> subscription = Subscription('subscription_name', topic, | ||
... push_endpoint=ENDPOINT) | ||
>>> subscription.modify_push_configuration(push_endpoint=None) # API request | ||
|
||
List subscriptions for a topic: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> topic = Topic('topic_name') | ||
>>> subscriptions = topic.list_subscriptions() # API request | ||
>>> [subscription.name for subscription in subscriptions] | ||
['subscription_name'] | ||
|
||
Delete a subscription: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> from gcloud.pubsub.subscription import Subscription | ||
>>> topic = Topic('topic_name') | ||
>>> subscription = Subscription('subscription_name', topic) | ||
>>> subscription.delete() # API request | ||
|
||
|
||
Pull messages from a subscription | ||
--------------------------------- | ||
|
||
Fetch pending messages for a pull subscription | ||
|
||
.. note:: | ||
|
||
The messages will have been ACKed already. | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> from gcloud.pubsub.subscription import Subscription | ||
>>> topic = Topic('topic_name') | ||
>>> subscription = Subscription('subscription_name', topic) | ||
>>> with topic: | ||
... topic.publish('this is the first message_payload') | ||
... topic.publish('this is the second message_payload', | ||
... attr1='value1', attr2='value2') | ||
>>> messages = subscription.pull() # API request | ||
>>> [message.id for message in messages] | ||
[<message_id1>, <message_id2>] | ||
>>> [message.data for message in messages] | ||
['this is the first message_payload', 'this is the second message_payload'] | ||
>>> [message.attrs for message in messages] | ||
[{}, {'attr1': 'value1', 'attr2': 'value2'}] | ||
|
||
Fetch a limited number of pending messages for a pull subscription: | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> from gcloud.pubsub.subscription import Subscription | ||
>>> topic = Topic('topic_name') | ||
>>> subscription = Subscription('subscription_name', topic) | ||
>>> with topic: | ||
... topic.publish('this is the first message_payload') | ||
... topic.publish('this is the second message_payload', | ||
... attr1='value1', attr2='value2') | ||
>>> [message.id for message in subscription.pull(max_messages=1)] | ||
[<message_id1>] | ||
|
||
Fetch messages for a pull subscription without blocking (none pending): | ||
|
||
.. doctest:: | ||
|
||
>>> from gcloud.pubsub.topic import Topic | ||
>>> from gcloud.pubsub.subscription import Subscription | ||
>>> topic = Topic('topic_name') | ||
>>> subscription = Subscription('subscription_name', topic) | ||
>>> [message.id for message in subscription.pull(return_immediately=True)] | ||
[] | ||
|
||
.. automodule:: gcloud.pubsub.api | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Subscriptions | ||
~~~~~~~~~~~~~ | ||
|
||
.. automodule:: gcloud.pubsub.subscription | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
Oops, something went wrong.