Решение невероятно простое (я определенно слишком усложнял его). Не уверен, насколько эффективно это на самом деле, но сомневаюсь, что это не слишком страшно. Предложения по улучшению шаблона все еще приветствуются:
В определении задания объявите канал для обратной связи с результатом:
type Job struct {
Request string
Params []string
Result chan Result
}
Внутри вашего работника, а не просто выход с возвратом, передайтеСтруктура результата по каналу:
job.Result <- Result{
Response: result.String(),
Headers: []string{},
}
Теперь внутри веб-обработчика просто подождите на канале:
disatcher.jobQueue <- job
result := <- job.Result
Глупый меня. Не знаю, почему это заняло 2 часа усилий. :-p урок усвоен: идти параллелизм МОЩНО. Только не думай об этом.