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)
| File | Size | Uploaded | |
|---|---|---|---|
| momotor_engine_proto-6.0.1.tar.gz | 71.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|