如何从主要应用程序中编译和产生/运行项目(HTTP和Worker)



我正在尝试学习d,因此用一个可以在自己的循环中进行工作的工作线程设置upp httpserver ie。主要应用程序是通过产卵HTTP线程和Worker线程开始的主要应用程序,然后还将信号(Sigint,& Handler)连接到MAIN中的CTRL C,其中每个产卵线中的处理程序功能都在其中。

我正在为HTTP服务器使用Vibe.D。文件夹结构,其中根文件夹是主要应用程序,并且具有HTTP和Worker Project的单独子文件夹

现在我的问题是产卵部分,如果那是自己的项目,如何让工人前进?

我尝试导入工人项目,但没有运气我无法编译,因为我在一排中学了三个.D文件

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

这给了我一个错误"源文件必须以食谱注释开头" ???回答您可以在DUB Commandline参数中看到的答案

我已经设法使用DMD语法产生了线程,但是在"另一个文件中的呼叫函数"中的同一项目中,我想将项目分开,就好像一群人分开编码它们一样。

如何从主要应用程序中编译和产生/运行多个项目(HTTP和Worker)??

我找到了解决问题的解决方案。 SpawnProcess 在dlang.org和SpawnProcess

上了解更多有关它的信息。

1)在我的项目组"蜘蛛","服务器"one_answers" Worker"中,我已将所有应用程序都汇编为使用Dub In Resp的单个应用程序。项目文件夹。

2)从"蜘蛛"应用程序代码中,我将"服务器"one_answers" worker"作为子过程

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 A.S.O.来自所有过程。仍然可以解决信号,但看起来像一个小问题;)

最新更新