Skip to main content

This package is a part of Momotor, a tool for automated processing of digital content.

Momotor accepts digital content as a product bundle and generates a result bundle from this product under control of a recipe bundle.

Momotor is like a continuous integration system, but broader in scope. The type of content that Momotor can process is not restricted; each recipe may impose its own constraints. One application of Momotor in an educational setting is the automatic generation of feedback on work submitted for programming assignments.


The momotor-engine-proto package provides the Momotor RPC protocol for communication between the Momotor broker and clients, and also for the communication between the Momotor broker and workers.

The protocol uses the Google RPC (gRPC) protocol.

Worker connection recovery

get_authenticated_channel() keeps its shared 900-second ping interval. Pass keepalive_time=None to disable transport keepalive. The optional keepalive_timeout sets a positive, finite acknowledgement timeout. It defaults to the supplied Configuration value, or 20 seconds. Both durations reject zero, negative, non-finite, and boolean values.

Workers can select keepalive_time=15, keepalive_timeout=10. An unacknowledged ping closes the transport within at most 25 seconds of a silent failure, subject to event-loop scheduling. Reconnect delay and authentication time are additional. A worker with a 5-second retry cap and 10-second authentication timeout can make its next connection attempt within 30 seconds and complete an available connection within 40 seconds. The broker's normal session timeout is 60 seconds.

An outstanding getTask counts as an active call even when no work matches. Repeated pings therefore continue during a healthy long wait. By default, a channel with no active RPCs sends no pings. Set keepalive_permit_without_calls=True to probe such channels too. The caller must replace a failed authenticated channel and cancel its old work. A PING proves transport liveness, not broker application progress or assignment ownership.

A supplied config=Configuration(...) provides window sizes, TLS hostname settings, the acknowledgement timeout, and the idle-call policy. Explicit keepalive arguments override those policy values. keepalive_time always wins, including its default of 900. The helper permits unlimited pings without DATA and sets the minimum spacing to the smaller of one second and the ping interval. Confirm that the broker and intervening proxies permit your chosen ping rate. A peer that rejects frequent pings can close the connection instead.

Transport tests exercise silent loss, explicit disconnect, idle channels, and long RPCs over TCP, including certificate-verified TLS, against the installed grpclib version in the supported >=0.4.9,<0.5 range. The minimum excludes 0.4.7, whose stream reset after a TLS disconnect can raise AttributeError. Policy logs contain durations and flags, never authentication credentials. grpclib.protocol debug logging provides transport close reasons, including keepalive expiry.

Metadata

Release files for momotor-engine-proto 6.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for momotor-engine-proto 6.0.1
File Size Uploaded
momotor_engine_proto-6.0.1.tar.gz 71.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for momotor-engine-proto 6.0.1
File Interpreter ABI Platform
momotor_engine_proto-6.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 133.0 kB

Release files / momotor_engine_proto-6.0.1.tar.gz

Download URL momotor_engine_proto-6.0.1.tar.gz
Size 71.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9f86a505d095b77e2ec879241c7acf353cea5b9b842526581fa37a980bfb96a0
BLAKE2b-256 checksum
How to use checksums
21663479eb36242216025e05bc0dc4295144e22af272e60c12d02ec0c4c9679b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / momotor_engine_proto-6.0.1-py3-none-any.whl

Download URL momotor_engine_proto-6.0.1-py3-none-any.whl
Size 61.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eb1d3db08eb8a17f7cfdcbce66f2e06855ad17586d0ee3f9202a84066b26eb6e
BLAKE2b-256 checksum
How to use checksums
51589c43094f226201889a2a95b55aab1cea37de96a1de5fd1dd39ac46027676
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page