作者carlcarl (carl)
看板PHP
标题Re: [请益] 让程式在後台执行
时间Thu Dec 1 04:52:16 2011
※ 引述《imyachi (yachi)》之铭言:
: 最近在写一个php,碰到一个问题,想向大家请教
: 网页主要是将使用者的资料和参数传到linux server上,
: 然後对linux下指令,开始执行。
: 程式执行运算通常需要30分钟以上,
: 所以想要 在下指令以後 让程式在server上面跑,
: 跑完後再把结果 透过email传给使用者。
: 现在遇到的问题是:
: 用exec()传送指令,
: 程式开始执行....
: 然後 主网页画面就会因为timeout所以显示无法使用
: 但是...在程式执行完後,email仍会收到结果。
: ==================
: 所以希望 在程式开始执行时,
: 网页画面就跳出 "" 程式执行中,我们会把执行结果送到您的信箱""
: 这些字样~
: 然後使用者就可以关掉网页???!!
: ====================
: 主要想法是这样,
: 可是不知道该怎麽实作,
: 刚刚爬文後,还是一头雾水QQ
: 只好再麻烦大家,提供一些建议:D:D
: 谢谢谢谢~~~~~~~~
这样?
首先先弹个视窗给user
echo "<script type='text/javascript'>alert('程式执行中,我们....');</script>";
背景执行, unrar是随便一个例子,
另外要把output导到/dev/null才行的样子 只用&好像还是会卡在网页load
$cmd = "unrar aaa.rar > /dev/null &";
exec($cmd);
然後寄信
mailto(xxxxx);
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.47.74.192
1F:推 imyachi:好像懂了~~ 来试试看!!!! 谢谢你唷^_^ 12/01 11:00
2F:→ MOONRAKER:max_execution_time可以到1800吗? 12/01 11:57
3F:→ bibo9901:set_time_limit(0); 就不会 timeout 12/01 19:19
4F:→ MOONRAKER:这样真的好吗? 12/01 21:20
5F:→ bibo9901:不知道耶... 12/01 22:11
6F:→ shadowjohn:如果真的太大超时要跑,还是跑个crontab弄个queue :) 12/01 22:15
7F:推 waterdroporg:设成0的确OK,有次我设成0做批次上传图片,结果 12/07 02:08
8F:→ waterdroporg:想停止关掉网页还是继续跑= = 12/07 02:09