问题标签 [fork]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
422 浏览

ruby-on-rails - 如何加速我的 Ruby 应用程序?

我正在制作一个我正在尝试优化的数据密集型 Web 应用程序。我听说过分叉和线程,但我不知道它们是否适用于我正在尝试做的事情,如果适用,如何实现它们。我的代码如下所示:

所以,基本上我有两个从 eBay 和 Amazon 检索数据并在此处解析的操作。我怎样才能让这两个动作同时运行?fork 或 thread 与我想要完成的事情有什么关系吗?


这将 API 时间减少了一半,但我不知道如何返回结果。在返回 API 结果之前加载后续视图......但是,它正在返回数据。当我编码时

线程内的结果显示在控制台中。但是,在线程之外,不会返回结果。

我在正确的轨道上吗?如何从线程内返回结果?是该变量只能在线程内访问,还是问题在于程序在返回结果之前进行了处理?


不幸的是,该应用程序需要实时用户输入来查询 API。返回的数据必须是新鲜的,因为它与市场中的产品定价有关……例如,用户将输入一个 SKU,并且程序将使用该信息向适用的网站(在这种情况下为亚马逊和 eBay)发出请求.) 目前它向亚马逊发出请求,解析数据,格式化,然后转到 eBay,解析数据,并格式化。然后将格式化的数据显示在视图中。

我的想法是,如果我可以同时进行这些 API 调用(在不同的线程上?),它将节省 Web 服务端的时间,因为所需要做的就是解析返回的数据并正确格式化它。(我也可以加快速度......)

0 投票
1 回答
1098 浏览

ruby - 如何在ruby中锁定fork共享的IO

我们如何锁定已被多个 ruby​​ 进程共享的 IO?

考虑这个脚本:

并尝试这样:

正如预期的那样,test-io-fork.log 文件将包含 IO 竞争条件的迹象。

我想要实现的是为自定义 GPS 协议制作一个 TCP 服务器,它将 GPS 点保存到数据库中。因为该服务器将处理 1000 个并发客户端,所以我想将数据库连接限制为只有一个孩子,而不是同时打开 1000 个数据库连接。该服务器将在 linux 上运行。

0 投票
5 回答
4274 浏览

unix - fork 系统调用的应用

fork 用于创建调用它的进程的副本。这通常是调用 exec 系列函数。除此以外还有什么fork的用法吗?我能想到一个。用管道函数做 IPC。

0 投票
2 回答
3511 浏览

mysql - 分叉 MySQL INSERT INTO (InnoDB)

我正在尝试将大约 5 亿行垃圾数据插入数据库进行测试。现在我有一个 PHP 脚本循环遍历一个SELECT/INSERT内部的几个语句TRANSACTION ——显然这不是最好的解决方案。这些表是 InnoDB(行级锁定)。

我想知道我是否(正确)分叉了这个过程,这会加快这个INSERT过程吗?按照目前的速度,完成需要 140 个小时。我担心两件事:

  1. 如果INSERT语句必须获得写锁,那么它是否会使分叉变得无用,因为多个进程不能同时写入同一个表?

  2. 我正在使用SELECT...LAST_INSERT_ID()(在 a 内TRANSACTION)。当多个进程INSERT进入数据库时​​,这个逻辑会中断吗?我可以为每个分叉创建一个新的数据库连接,所以我希望这可以避免这个问题。

  3. 我应该使用多少个进程?查询本身很简单,我有一个普通的双核开发盒,有 2GB 内存。我将我的 InnoDB 设置为使用 8 个线程 ( innodb_thread_concurrency=8),但我不确定我是否应该使用 8 个进程,或者这是否是考虑匹配的正确方法。

谢谢你的帮助!

0 投票
1 回答
2033 浏览

python - python中轮询套接字的问题

在我开始轮询循环后,第一次迭代后打印的所有消息都要求我在终端中按 enter 以显示它。

0 投票
2 回答
1226 浏览

bash - 使用 bash 脚本在后台运行进程

我想运行如下脚本:

亚军: ssh 'java 程序 &' ssh 'java 程序 &'

如何编写脚本来分叉第一个进程?目前,它正在等待它完成。

谢谢

0 投票
2 回答
589 浏览

php - PHP 随机分叉是否父进程或子进程取决于首先完成的内容我做错了什么?

嘿,我有一个简单的脚本,它假设同时加载 2 个单独的页面并从中获取一些文本,但是它加载父进程或子进程取决于先完成的内容,我做错了什么? 我希望 2 个进程同时工作,这里是示例代码:

任何帮助,将不胜感激!

0 投票
2 回答
1094 浏览

python - 在 Python 2.5 及以下版本不使用 shell 创建可执行进程

正如标题所说:

  1. subprocess模块不能使用,因为这应该适用于 2.4 和 2.5
  2. 不应生成 Shell 进程来传递参数。

为了解释 (2),请考虑以下代码:

如您所见os.systemos.popen通过系统外壳(“sh”)运行给定的命令(“foo”)。我不希望这种情况发生(否则,丑陋的“未找到”消息会在我无法控制的情况下打印到程序 stderr)。

最后,我应该能够将参数传递给这个程序(上例中的“arg”)。

在 Python 2.5 和 2.4 中如何做到这一点?

0 投票
1 回答
390 浏览

python - 帮助 python 分叉子服务器进行 ajax 推送、长轮询

好吧,我只知道一些基本的python,但如果我能得到帮助,那么我正在考虑将它开源。

我正在尝试做的事情:-(完成)Ajax 发送初始化内容-Python 服务器 recv 命令“init”发送最新内容-(完成)Ajax recv 内容,然后立即回调到 python 服务器-Python 服务器 recv 命令“等待”,设置孩子,并等待来自 ajax 的命令“新” - (完成)Ajax 发送“新”命令 - Python 服务器唤醒所有等待的孩子并发送最新内容 - (完成)Ajax 发送“等待”,等等向前

我已经用 php 编写了 Python 服务器部分,但它使用 100% CPU,所以我知道我必须使用分叉套接字守护程序才能让多个进程坐在那里等待。现在,我可以用 PHP 编写它,但它需要手动安装的扩展,这可能是要求主机将其安装在共享帐户等上的问题。所以我转向 Python,它也可以提供更多的灵活性并运行得更快。再加上更多的人可以使用它。

所以,如果有人可以帮助解决这个问题,或者给出一些指导,那就太好了。

我自己正在编写代码,只是不太了解它。我可以为不同的命令添加 if 语句,并自己添加 mysql 连接。如果我最终有任何问题,我会在这里问。我喜欢这个网站。

0 投票
3 回答
3407 浏览

python - 在Django中,如何调用启动时间慢的子进程

假设您在 Linux 上运行 Django,并且您有一个视图,并且您希望该视图从名为cmd的子进程返回数据,该子进程对视图创建的文件进行操作,例如:

现在,假设cmd的启动时间很慢,但运行时间非常快,而且它本身没有守护程序模式。我想改进这个视图的响应时间。

我想通过在工作池中启动多个cmd实例,让它们等待输入,并让call_process询问其中一个工作池进程处理数据,从而使整个系统运行得更快。

这实际上是 2 个部分:

第 1 部分。调用cmdcmd等待输入的函数。这可以通过管道来完成,即

第 2 部分。一组在后台运行并等待数据的工作人员。即我们想扩展上面的,以便子进程已经在运行,例如当 Django 实例初始化时,或者这个call_process被第一次调用时,一组这些工人被创建

应该在某处对工作人员进行一些初始化,如下所示:

现在,我上面的内容变成了这样:

现在,问题:

  1. 这行得通吗?(我刚刚将这个从头顶输入到 StackOverflow,所以我确信存在问题,但从概念上讲,它会起作用)

  2. 要寻找哪些问题?

  3. 有更好的选择吗?例如,线程是否也可以正常工作(它是 Debian Lenny Linux)?有没有像这样处理并行进程工作池的库?

  4. 我应该注意与 Django 的交互吗?

谢谢阅读!我希望你和我一样觉得这个问题很有趣。

布赖恩