运行长时间执行php脚本,甚至关闭浏览器

运行长时间执行php脚本,甚至关闭浏览器,php,linux,cron,background-process,Php,Linux,Cron,Background Process,我正在使用symfony框架进行web工资单项目。我们每月有27000名员工需要处理。当我们进行员工工资单处理时,我们不能依赖于浏览器请求,因为这是一个耗时的过程,并且服务器超时。作为解决方法,我们喜欢在linux服务器上从后台执行php脚本。然后,即使关闭浏览器,脚本也可以执行背景 完成此任务的最佳方法是什么请帮助 更多信息 我们希望在用户点击按钮时,在web界面上给出“工资登记流程开始”按钮,工资登记流程应启动,甚至浏览器关闭,在后台完成之前,它应一直执行 要在后台运行,请执行以下步骤: 将

我正在使用symfony框架进行web工资单项目。我们每月有27000名员工需要处理。当我们进行员工工资单处理时,我们不能依赖于浏览器请求,因为这是一个耗时的过程,并且服务器超时。作为解决方法,我们喜欢在linux服务器上从后台执行php脚本。然后,即使关闭浏览器,脚本也可以执行背景

完成此任务的最佳方法是什么请帮助

更多信息

我们希望在用户点击按钮时,在web界面上给出“工资登记流程开始”按钮,工资登记流程应启动,甚至浏览器关闭,在后台完成之前,它应一直执行


要在后台运行,请执行以下步骤:

  • 将php命令包装在shell脚本中:
  • **

    **

  • 编写网页/php脚本以请求启动

  • 在脚本中,您需要以下行:

    系统('/home/yourapp/yourscript.sh>scriptlog.txt&'

  • 您可能需要一个额外的链接来从web浏览“scriptlog.txt”文件


  • 有不同的方法来处理这个问题

    第一种方法是从PHP代码开始,在后台执行startinan shell命令(如果愿意,可以使用
    nohup
    ),这与重复问题中的第一个答案几乎相同

    第二种方法是使用PHP特性。
    使用PCNTL,您可以创建在后台运行的子进程。因此,您可以创建一个并返回给用户:“工资单进程正在运行-如果系统准备就绪,您将收到一封邮件”.

    可能与windows的大多数答案相同。我们正在开发LAMP Stack,嗯?那里没有windows答案。它们都是Unix/Linuxok的。感谢您的贡献。您知道“L”LAMP代表Linux?副本中的第一个答案对您来说应该很好。Thansk james我们计划将输出写入数据库,而不是文本文件谢谢您的回答好主意+1@Roshan--祝你好运。很抱歉,格式太乱了,但我似乎无法整理它!
    #!/usr/bin/bash
    # set up environment variables, PATH etc. here
    php  /home/yourapp/yourscript.php