module taskvent;
import std.random;
import std.stdio;
import std.format;

import zmqd;

void main()
{
    // socket to send messages on
    auto sender = Socket(SocketType.push);
    sender.bind("tcp://*:5557");

    // socket to send start of batch message on
    auto sink = Socket(SocketType.push);
    sink.connect("tcp://localhost:5558");

    writeln("Press Enter when the workers are ready: ");
    stdout.flush();
    stdin.readln();
    writeln("Sending tasks to workers â€¦");
    // The first message is "0" and signals start of batch
    sink.send("0");

    // send 100 tasks
    int totalMsec;
    foreach (int taskNbr; 0 .. 100)
    {
        auto workload = uniform(1, 101);
        totalMsec += workload;
        sender.send("%s".format(workload));
    }
    writefln("Total expected cost: %s msec", totalMsec);
}