forked from riverqueue/riverqueue-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclient_insert_example.py
More file actions
40 lines (29 loc) · 821 Bytes
/
client_insert_example.py
File metadata and controls
40 lines (29 loc) · 821 Bytes
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
#
# Run with:
#
# rye run python3 -m examples.client_insert_example
#
from dataclasses import dataclass
import json
import riverqueue
import sqlalchemy
from examples.helpers import dev_database_url
from riverqueue.driver import riversqlalchemy
@dataclass
class SortArgs:
strings: list[str]
kind: str = "sort"
def to_json(self) -> str:
return json.dumps({"strings": self.strings})
def example():
engine = sqlalchemy.create_engine(dev_database_url())
client = riverqueue.Client(riversqlalchemy.Driver(engine))
insert_res = client.insert(
SortArgs(strings=["whale", "tiger", "bear"]),
insert_opts=riverqueue.InsertOpts(
unique_opts=riverqueue.UniqueOpts(by_period=900)
),
)
print(insert_res)
if __name__ == "__main__":
example()