-
Notifications
You must be signed in to change notification settings - Fork 184
/
Copy pathreconnecting_mutation_http.py
47 lines (31 loc) · 1.06 KB
/
reconnecting_mutation_http.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import asyncio
import logging
import backoff
from gql import Client, gql
from gql.transport.aiohttp import AIOHTTPTransport
logging.basicConfig(level=logging.INFO)
async def main():
# Note: this example used the test backend from
# https://github.com/slothmanxyz/typegraphql-ws-apollo
transport = AIOHTTPTransport(url="ws://localhost:5000/graphql")
client = Client(transport=transport)
retry_connect = backoff.on_exception(
backoff.expo,
Exception,
max_value=10,
jitter=None,
)
session = await client.connect_async(reconnecting=True, retry_connect=retry_connect)
num = 0
while True:
num += 1
# Execute single query
query = gql("mutation ($message: String!) {sendMessage(message: $message)}")
params = {"message": f"test {num}"}
try:
result = await session.execute(query, variable_values=params)
print(result)
except Exception as e:
print(f"Received exception {e}")
await asyncio.sleep(1)
asyncio.run(main())