Не уверен, насколько это идиоматично, так как я все еще новичок с языком, но мне подходит следующее решение:
(let [number-of-messages-per-time 2
await-timeout 1000]
(doseq [p-messages (partition number-of-messages-per-time messages)]
(let [agents (map agent p-messages)]
(doseq [a agents] (send-off a process))
(apply await-for await-timeout agents)
(map deref agents))))
Создайте третий проект, который является либо динамической, либо статической библиотекой (предпочтительнее второй для простоты использования), и поместите в него общий код. Два других проекта # включают заголовки из проекта библиотеки и связываются с двоичным файлом проекта библиотеки.