在我的应用程序运行时,用户需要通过一种形式,在那里我有三个邮件和做一些其他的(巨大)的数据库检查登记。这需要很多时间,是否有可能将整个任务作为后台进程或者其他替代方法?我通过一个PHP后台进程问题
0
A
回答
0
你不能使已启动了一个网络服务器进程后台进程的PHP脚本。
我会检查是否可以对数据库进行优化(可能没有足够的指标),如果这样做不起作用,那么在CLI上建立第二个定期开始(也许每五分钟一次)的进程一边用cronjob
,显示用户“感谢您注册”网页...
1
也许你可以当用户注册标志他为你的数据库悬而未决。
然后,你可以推迟在后台持续谁还会去找任何未处理的请求,做检查,发送的电子邮件,最终相应地更新数据库在Python或PHP日常运转工作。
在此期间,用户将在注册,但挂起状态,但在从一个访问者点至少,他没有坚持等到一切被processesed。
2
如果您的数据库活动时间过长,则需要重新考虑设计。但是,如果延迟是由于电子邮件造成的,那么只需将电子邮件存储在数据库或文件中即可。创建一个cron作业,每5/10/15分钟发送一次这些排队的电子邮件(然后删除它们)。
0
按其他地方我的意见,从产卵PHP一个长期运行的进程是一个实用的解决方案bearing in mind a few caveats如果性能问题是不可避免的。
但是“发送3封邮件”不应该花费大量的时间(我不知道数据库检查的是什么)。您需要花一些时间来优化现有流程。
解决问题的其他方法是传统的批处理,通过网络调用或异步消息传递系统将繁重的工作卸载到多进程/多线程守护进程,甚至是使用消息队列的单线程作业处理器。
相关问题
- 1. 问题开始PHP后台进程
- 2. PHP后台进程PID问题
- 3. 前台和后台进程的问题
- 4. 停止一个PHP后台进程
- 5. 创建一个后台PHP进程
- 6. 通过PHP进行后台更新?
- 7. PHP后台进程
- 8. PHP后台进程
- 9. PHP后台进程
- 10. 后台进程的性能问题WPF
- 11. 如何通过proc_open后台进程并访问STDIN?
- 12. PHP中的后台进程
- 13. vb.net - 后台线程问题
- 14. PHP管道进入后台进程
- 15. 后台进程终止后的通知
- 16. C#使我的应用程序成为一个后台进程
- 17. 在后台放置一个进程C
- 18. ,得到一个后台进程
- 19. 线程或后台进程蛋糕php
- 20. 从后台线程通过Greenrobot事件总线进行通信
- 21. 然后通过在PHP问题中通过套接字回读
- 22. pidof从另一个后台进程的后台脚本
- 23. 如何在后台运行一个php进程?
- 24. 由于后台进程导致的Android线程问题
- 25. PHP MySQL组通过问题
- 26. PHP通过引用问题
- 27. 在后台通过GET执行PHP PARAMS
- 28. php通过shell在后台运行
- 29. 组后台程序通过一个XML文件
- 30. 开始一个后台线程的问题
-1:“您无法创建PHP脚本......处理后台进程”。废话。当然,你不应该在一个Web请求的同一个线程中同步处理一个长时间运行的进程 - 但这距离你的声明还有很长的路要走。另请参阅http://symcbean.blogspot.com/2010/02/php-and-long-running-processes.html – symcbean
所以,让我清楚地说明一下:首先,你误导我,然后你误解我说的错误引语(可能因为您不知道操作系统生态系统中的“后台进程”是什么),然后您使我失望了?一旦你通过Web服务器启动了一个PHP脚本,它就变成了一个子进程,并且不能成为它自己的后台进程。你在你那么强大(并且事实上是危险的)博客文章中的含义与我写的内容无关。有些人... – ty812