qcg.pilotjob.publisher module

class qcg.pilotjob.publisher.EventTopic(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

Published event types.

ITERATION_STATUS = 'IST'
ITERATION_FINISHED = 'IFI'
JOB_STATUS = 'JST'
JOB_FINISHED = 'JFI'
NO_JOBS = 'NOJ'
class qcg.pilotjob.publisher.StatusPublisher

Bases: object

Publish job status change notifications.

Publisher handles notifications with queing events to publish. The queing event is done synchronously. In the background the sender task takes queued events and sent them (asynchronously).

zmq_ctx

ZMQ context

Type

Context

socket

ZMQ PUB socket

Type

socket

address

address of ZMQ PUB interface from configuration

Type

str

local_port

listen port number

Type

int

external_address

address on external network interface (not on private ips)

Type

str

Initialize Publisher.

setup(conf)

Create Publisher interface.

If port number is not specified in QCG-PilotJob configuration, it is chosen randomly from configured range.

static encode_published_data(topic, data)

Encode event data to be sent with send_string socket method.

Parameters
  • (EventTopic) (topic) – the event topic

  • (obj) (data) – data to sent

Returns

encoded event with topic as string

static decode_published_data(event_message)

Decode received event.

Parameters

event_message – the received message

Returns

tupple (EventTopic, object) with event topic and deserialized data

Raise

UnknownEventTopic - when received topic is not known WrongEventFormat - when event data cannot be deserialized

publish(topic, data)

Publish event

Parameters
  • (EventTopic) (topic) – event’s topic

  • (obj) (data) – event data

async stop()

Cleanup.