I wonder what is needed on python side to register python activity in a go workflow. Tried some sample code in python and get connection error, wonder if I need to specify go workflow name somehow?
Thanks!
Activities Interface
class GreetingActivities:
@activity_method(task_queue=PYTHON_TASK_QUEUE, schedule_to_close_timeout=timedelta(seconds=1000))
async def compose_greeting(self, greeting: str, name: str) → str:
raise NotImplementedError
Activities Implementation
class GreetingActivitiesImpl:
async def compose_greeting(self, greeting: str, name: str):
return greeting + " " + name + " from python worker!"
async def client_main():
client = WorkflowClient.new_client(namespace=NAMESPACE, host=“temporal”)
factory = WorkerFactory(client, NAMESPACE)
worker = factory.new_worker(PYTHON_TASK_QUEUE)
worker.register_activities_implementation(GreetingActivitiesImpl(), "GreetingActivities")
#worker.register_workflow_implementation_type(GreetingWorkflowImpl)
factory.start()
print("Worker factory start.....")
Worker factory start…
INFO:temporal.activity_loop:Activity task worker started: 31@3af54240a8e4
INFO:temporal.activity_loop:Activity loop ended
ERROR:temporal.activity_loop:activity_task_loop_func failed: , retrying in 3 seconds
Traceback (most recent call last):
File “/usr/local/lib/python3.7/site-packages/temporal/retry.py”, line 17, in retry_loop
await fp(*args, **kwargs)
File “/usr/local/lib/python3.7/site-packages/temporal/activity_loop.py”, line 39, in activity_task_loop_func
task = await service.poll_activity_task_queue(request=polling_request)
File “/usr/local/lib/python3.7/site-packages/temporal/api/workflowservice/v1.py”, line 893, in poll_activity_task_queue
PollActivityTaskQueueResponse,
File “/usr/local/lib/python3.7/site-packages/betterproto/init.py”, line 1132, in _unary_unary
await stream.send_message(request, end=True)
File “/usr/local/lib/python3.7/site-packages/grpclib/client.py”, line 241, in send_message
await self.send_request()
File “/usr/local/lib/python3.7/site-packages/grpclib/client.py”, line 173, in send_request
protocol = await self._channel.connect()
File “/usr/local/lib/python3.7/site-packages/grpclib/client.py”, line 696, in connect
self._protocol = await self._create_connection()
File “/usr/local/lib/python3.7/site-packages/grpclib/client.py”, line 681, in _create_connection
ssl=self._ssl,
File “/usr/local/lib/python3.7/asyncio/base_events.py”, line 913, in create_connection
type=socket.SOCK_STREAM, proto=proto, flags=flags, loop=self)
File “/usr/local/lib/python3.7/asyncio/base_events.py”, line 1290, in _ensure_resolved
proto=proto, flags=flags)
File “/usr/local/lib/python3.7/asyncio/base_events.py”, line 792, in getaddrinfo
None, getaddr_func, host, port, family, type, proto, flags)
concurrent.futures._base.CancelledError