- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在用 C++ 编写一个程序,它将一直在后台运行以执行不同的任务 - 一个守护进程。
除了 Web 应用程序应与其通信的常规任务(执行 COMET 模式中的 AJAX 请求 = 许多打开但休眠的连接)。
所以问题是:我应该如何将它连接到 Web 服务器(apache 和 lighttpd 是相关的)?
在我阅读的内容中,FastCGI 对于该任务非常有趣,但我阅读的所有引用资料都在谈论网络服务器在必要时启动 FastCGI 应用程序。这在这里行不通,因为守护进程已经在运行了……
我还读到 Web 服务器将通过 socets 与 FastCGI 应用程序通信——所以这对我来说可能是一个入口点,守护进程将“只”需要与这样的套接字通信。
但是是否有好的库可以用于此?
查看 http://cppcms.com/wikipp/en/page/main 的特征这对我来说看起来很有趣——但这对我来说行得通吗?是否可以将其精简 - 甚至提供 SQL 连接对我的情况来说也太重了......
那你能给我什么建议呢?
PS:在性能方面,我认为单线程但异步实现适用于守护进程 <-> 网络服务器胶水。
最佳答案
FastCGI 是与网络服务器通信的标准协议(protocol)。所有提到的 Web 服务器都可以通过 fastcgi 与远程守护进程通信。
http://cppcms.com/wikipp/en/page/cppcms_1x_tut_web_server_config
此外,如果您正在寻找 Comet 支持,那么 CppCMS 本身就可以为您提供:
http://blog.cppcms.com/post/107
And could it be stripped down - offering even a SQL connection is far too heavy for my case...
CppCMS 库非常小,也可以减小它的大小:
http://cppcms.com/wikipp/en/page/cppcms_1x_build#Build.Options
SQL 连接 CppDB 也是独立的部分。
Performance wise I recon a single threaded but asynchronous implementation would work for the deamon <-> web server glue.
它是标准的 CppCMS 运行模式之一——运行异步 Web 应用程序。
更新:
Of what I've read FastCGI would be very interesting for that task, but all references I've read were talking about the web server starting the FastCGI application when necessary. This wouldn't work here as the deamon would already be running..
确实有些 web 服务器启动了快速的 cgi 应用程序,但是:
Apache :
mod_fascgi
允许启动 FastCGI 应用程序或连接到独立的应用程序mod_scgi
连接到独立的应用程序 - 不启动应用程序。mod_fcgid
总是启动应用程序 - 不适合你另外,作为一般说明,apache 不适合处理许多空闲连接的模式,因为它为每个连接使用线程(甚至依赖于 mpm 的进程)。
Nginx - 根本不启动应用程序,但是对于 fastcgi,由于缓冲,目前不是 cometd 流的最佳选择,因此 SCGI 与 nginx 会更好(假设您使用的是最新的 nginx 版本)
小提示:SCGI 是一种与 FastCGI 非常相似但简单得多的协议(protocol)。
关于c++ - 如何将守护进程与 Web 服务器连接(例如通过 FastCGI)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12042627/
我对 FastCGI 的工作原理有点困惑。我的程序真的只有一个实例在运行,还是有一些神奇的线程在运行?这很重要,因为如果我的数据结构的范围在主循环之外,我需要知道这些数据结构是否需要是线程安全的。 编
FastCGI 很旧,但在某些情况下它似乎仍然是正确的答案。 似乎 Perl/Catalyst Web 应用程序的首选部署是使用 FastCGI。 FastCGI 在 Rails 中很流行,但现在似乎
除了建立 TCP 连接之外,如何检查 FastCGI 服务器是否处于事件状态并正常运行? 我有许多远程、独立的 FastCGI 服务器。我想监控 FastCGI 服务器本身以确保其存活。简单地向 We
我今天在 Cherokee 上设置 Django(使用 SCGI),我注意到 the Django docs假设您可以使用主机/端口组合或套接字在网络服务器和 Django 之间进行通信。 他们在这件
httpd 配置文件可以有多少个 fastcgi 处理程序?我想设置 httpd 服务器来服务器在不同 tcp 套接字上运行的多个 fastcgi 程序。例如:http://uwsgi-docs.re
我已经将 Web 服务器配置为通过命名管道使用“远程”fastCGI 应用程序(它实际上位于同一台 Windows 主机上)。我现在正试图找出如何启动 fastCGI 应用程序以使用此管道,但我不确定
我正在写 FastCGI wire protocol implementation in C (还导出了一个用于编写应用程序服务器的更高级别的 C++ 接口(interface))并且我已经完成了足够
我理解 FastCGI 在性能方面优于其他网关接口(interface)的目的。但是,如果实现 FastCGI 的库已经不得不通过艰苦的措施来实现安全高效的 TCP 服务,为什么不直接将应用程序编写为
我正在使用 nginx、factcgi 和 spawn-fcgi 并试图让它工作。 我按如下方式启动 spawn-fcgi: g++ rtbTimeSeries.cpp -o forecast.fcg
我有一个 FastCGI Perl 网络应用程序(使用 CGI::Fast 编写,但这应该无关紧要),我想在FastCGI 模式下进行测试。 我可以使用什么 Perl 模块来运行 FastCGI 应用
谁能提供我一步一步的方式,我可以运行apache2在快速-cgi上ubuntu 22.10,我尝试了几件事,但我得到一个空白页或错误,我是在新安装的Apache2服务器实例。。Thnx!。尝试了很多东
我正在构建一个 C++ API,我想将其作为 Web 服务提供。我正在考虑使用 REST API,并决定使用 FastCGI 或 FastCGI C++ 在 C++ API 和 Web 服务器之间进行
我试图添加 try_files 来检查 php 文件是否存在,但它给了我错误。 "try_files" directive is duplicate in /etc/nginx/snippets/fa
我计划在Rebol(目前在Apache 2上为CGI)中编写一个相当不错的Web应用程序,但是最初的性能测试却非常令人沮丧。在应用程序上运行apache基准测试时,我仅得到4-5个请求/秒。我想知道其
我正在使用 web.py、spawn_fcgi 和 nginx 在 Python 中编写 Web 应用程序。 假设我在 nginx 中有这个配置块: location / { include
我正在实现一个 fastcgi 应用程序,在阅读了 fastCGI 规范后,我发现了一个名为“请求多路复用”的功能。它让我想起了 Adobe RTMP 多路复用在协议(protocol)是专有和封
我一直在尝试实现Web服务器网关(出于娱乐和教育目的),并且对于前叉模型,我对FastCGI/SCGI背后的核心体系结构有一些疑问。 FastCGI/SCGI实现如何处理前叉场景中的通信? AFAIK
我编写了一个简单的 Perl 脚本,通过 Apache 上的 fastCGI 运行该脚本。该应用程序加载一组 XML 数据文件,这些文件用于根据传入请求的查询参数查找值。据我了解,如果我想增加应用程序
我正在尝试使用FastCGI(和restcgi)开发简单的RESTful api。当我尝试实现 POST 方法时,我注意到输入流(表示请求正文)是错误的。我做了一个小测试,看起来当我尝试读取流时,只收
我正在运行 2 个不同的 php 版本。它们运行良好,但没有连接到 mysql,我不知道为什么。它们应该是,但我不知道如何强制它们连接 mysql。 php版本是5.3.27和5.4.31如果您需要更
我是一名优秀的程序员,十分优秀!