Skip to main content

zeebe Python gRPC Gateway

Project description

zeebe Python gRPC gateway files

This package contains two gRPC Gateway Files needed to build a zeebe-client or a zeebe-worker (https://zeebe.io/) with Python.

Both files were generated following the instructions on this (now outdated) blog post: https://zeebe.io/blog/2018/11/grpc-generating-a-zeebe-python-client/

How to install and use this package?

pip install zeebe-grpc
import json
import logging
import grpc
from zeebe_grpc import gateway_pb2, gateway_pb2_grpc

with grpc.insecure_channel("localhost:26500") as channel:
    stub = gateway_pb2_grpc.GatewayStub(channel)

    # print the topology of the zeebe cluster
    topology = stub.Topology(gateway_pb2.TopologyRequest())
    print(topology)

    # deploy a process definition
    with open("bpmn/echo.bpmn", "rb") as process_definition_file:
        process_definition = process_definition_file.read()
        process = gateway_pb2.ProcessRequestObject(
            name="echo.bpmn",
            definition=process_definition
        )
    stub.DeployProcess(
        gateway_pb2.DeployProcessRequest(
            processes=[process]
        )
    )

    # start a process instance
    variables = {
        "message": "This is a Message"
    }
    stub.CreateProcessInstance(
        gateway_pb2.CreateProcessInstanceRequest(
            bpmnProcessId="ECHO",
            version=-1,
            variables=json.dumps(variables)
        )
    )

    # start a worker
    activate_jobs_response = stub.ActivateJobs(
        gateway_pb2.ActivateJobsRequest(
            type="echo",
            worker="Python worker",
            timeout=60000,
            maxJobsToActivate=32
        )
    )
    for response in activate_jobs_response:
        for job in response.jobs:
            try:
                print(job.variables)
                stub.CompleteJob(gateway_pb2.CompleteJobRequest(jobKey=job.key, variables=json.dumps({})))
                logging.info("Job Completed")
            except Exception as e:
                stub.FailJob(gateway_pb2.FailJobRequest(jobKey=job.key))
                logging.info(f"Job Failed {e}")

How to (re)build the Python gRPC?

wget https://raw.githubusercontent.com/zeebe-io/zeebe/0.21.1/gateway-protocol/src/main/proto/gateway.proto -O ./zeebe_grpc/gateway.proto

python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. ./zeebe_grpc/gateway.proto

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zeebe_grpc-8.4.13.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

zeebe_grpc-8.4.13-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file zeebe_grpc-8.4.13.tar.gz.

File metadata

  • Download URL: zeebe_grpc-8.4.13.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for zeebe_grpc-8.4.13.tar.gz
Algorithm Hash digest
SHA256 6036494373e06c1fe31d90a335d13ed60b7d0c8c2af2b46b31440ab5259c29cc
MD5 f5d1bf49efcd23d40812adcfb02b4a13
BLAKE2b-256 60520558fd0964d1f5717767d69c419200a3ac45dd2a44fbc7c69e3c5d3ddf09

See more details on using hashes here.

File details

Details for the file zeebe_grpc-8.4.13-py3-none-any.whl.

File metadata

  • Download URL: zeebe_grpc-8.4.13-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for zeebe_grpc-8.4.13-py3-none-any.whl
Algorithm Hash digest
SHA256 eeff91bb9b1cbb4844590ea0381ee5f9bfc87d2848d95d8fdfd3de693706e6ca
MD5 e6e57e07f5c78f19c8150bca96bacbbb
BLAKE2b-256 436e0917fc47f512a8147854d7e05922c78efb9f91cae14209470a7a68694874

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page