2016-12-27 12 views
0

Я пытаюсь изучить D и, следовательно, установить upp httpserver с рабочим потоком, который может делать материал в своем собственном цикле, т.е. основное приложение, которое запускается путем создания потока HTTP и рабочего потока, затем также подключает сигнал (SIGINT, &) для обработки, как Ctrl + C, в главном, где функция обработчика находится в каждом порожденном потоке.Как скомпилировать и запустить/запустить проекты (http и worker) из основного приложения?

Я использую Vibe.d для http-сервера. Структура папок, где основная папка является основным приложением и с отдельными подпапками для http и рабочего проекта.

Теперь моя проблема - это часть икры, как получить работу работника, если это его собственный проект?

Я пытался импортировать проект уборщица, но не повезло я не могу собрать, как я узнал три .D файлы подряд

dub source/app.d aworker/source/app.d 

Это дает мне ошибку «Исходный файл должен начинаться с комментария рецепта "??? Ответ на что вы можете see in dub commandline params

Я сумел породить потоки, используя DMD синтаксис, но в пределах того же проекта in "call function in another file" question, теперь я хочу, чтобы отделить проекты, как если бы группа людей кодирования их раздельно.

Как скомпилировать и запустить или запустить несколько проектов (http и worker) из основного приложения?

ответ

0

Я нашел решение моей проблемы. spawnProcess Подробнее об этом в dlang.org и spawnProcess

1) В моей проектной группе «паук», «сервер» и «рабочий», я собрал все к отдельным приложениям с помощью даб в соотв. папке проекта.

2) Из «паук» кода приложения, я НИТЬ из «сервер» и «рабочий», как подпроцессы, как это

import std.process; 
auto workerId = spawnProcess(<path to worker as string>); 
scope(exit)wait(workerId); 
auto serverId = spawnProcess(<path to server as string>); 
scope(exit)wait(serverId); 

Это оставляет меня с одной отправной точки и я бегу от терминала, то это единственный терминал со всем выходом, вроде writeln aso от всех процессов. Остается решить сигнал, но это выглядит как небольшая проблема;)

 Смежные вопросы

  • Нет связанных вопросов^_^