-
Notifications
You must be signed in to change notification settings - Fork 0
/
run_worker.py
45 lines (36 loc) · 1.26 KB
/
run_worker.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
import asyncio
# @@@SNIPSTART python-money-transfer-project-template-import-os
import os
# @@@SNIPEND
# @@@SNIPSTART python-money-transfer-project-template-import-tls
from temporalio.client import Client, TLSConfig
# @@@SNIPEND
from temporalio.client import Worker
from activities import BankingActivities
from shared import MONEY_TRANSFER_TASK_QUEUE_NAME
from workflows import MoneyTransfer
async def main() -> None:
# @@@SNIPSTART python-money-transfer-project-template-import-connect-to-cloud
with open(os.getenv("TEMPORAL_MTLS_TLS_CERT"), "rb") as f:
client_cert = f.read()
with open(os.getenv("TEMPORAL_MTLS_TLS_KEY"), "rb") as f:
client_key = f.read()
client: Client = await Client.connect(
os.getenv("TEMPORAL_HOST_URL"),
namespace=os.getenv("TEMPORAL_NAMESPACE"),
tls=TLSConfig(
client_cert=client_cert,
client_private_key=client_key,
),
)
# @@@SNIPEND
activities = BankingActivities()
worker: Worker = Worker(
client,
task_queue=MONEY_TRANSFER_TASK_QUEUE_NAME,
workflows=[MoneyTransfer],
activities=[activities.withdraw, activities.deposit, activities.refund],
)
await worker.run()
if __name__ == "__main__":
asyncio.run(main())