使用Perl模块Para​​llel :: ForkManager时出错

时间:2018-06-30 09:03:39

标签: multithreading perl

当我使用perl模块Para​​llel :: ForkManager时,收到以下错误消息,并且我无法弄清楚代码中有什么问题。

奇怪的是,该程序可以在不同线程上发送的前70个bam文件正常运行,然后向我输出错误消息。

任何帮助将不胜感激。

非常感谢。 :)

以下是错误:

无法派生:无法在/usr/local/perl-5.24.0/lib/site_perl/5.24.0/Parallel/ForkManager.pm第52行,第8260行分配内存。

可存储模块无法将孩子的数据结构存储到临时文件“ /tmp/1341650.1.longjob.q/dZnCgF1MiR/Parallel-ForkManager-28852-28855.txt”:无法创建/tmp/1341650.1。 longjob.q / dZnCgF1MiR / Parallel-ForkManager-28852-28855.txt:在/usr/local/perl-5.24.0/lib/site_perl/5.24.0/Parallel/ForkManager.pm第84行中没有这样的文件或目录。 / p>

这是我的代码:

public function show(Company $company)
{
 return $company->employee()->with('motorCycle')->offset(0)->limit(20)->get();
}

1 个答案:

答案 0 :(得分:0)

听起来/tmp驱动器已满,或者存在权限问题,或者某些过程正在后台进行清理。

尝试使用其他目录作为临时文件。

为此,请设置环境变量TMPDIR,或将目录名称作为第二个参数传递给构造函数:

Parallel::ForkManager->new($max_process, $tmp_dir_qfn)