当前位置: 首页 > 面试题库 >

PHP中的线程?

和光启
2023-03-14
问题内容

我正在使用zend创建一个Web应用程序,在这里我创建了一个接口,用户A可以从该接口向多个用户发送电子邮件,并且效果很好,但是由于用户A等待太多,这会降低执行时间“已确认的回复”(将在电子邮件发送后显示。)

在Java中,我们可以通过“线程”执行该任务(发送电子邮件),并且不会减慢其余应用程序的速度。

与Java一样,PHP / Zend中是否有任何技术可以用来划分我们的任务,这可能会花费很多时间,例如:发送电子邮件。


问题答案:

编辑(感谢@Efazati,这个方向似乎有了新的发展)

http://php.net/manual/en/book.pthreads.php
注意:(从这里底部):

pthreads曾经是并且现在是一个效果很好的实验。它的任何限制或功能可能随时更改;[…]

/编辑

PHP中没有线程!

解决方法
是存储作业在队列(说行与电子邮件的表),并有一个cronjob打电话给你的PHP脚本在给定的时间间隔(比如2分钟),轮询工作。当作业存在时,获取一些作业(取决于您的php的安装超时时间)并发送电子邮件。

推迟执行的主要思想是:

  • 主脚本在队列中添加作业
  • cron脚本将它们分成小块发送

陷阱:

  • 确保您不发送电子邮件而不将其从队列中删除(最坏的情况是,如果用户每隔2分钟收到一些垃圾邮件…)
  • 确保在不先执行作业的情况下不要删除作业…
  • 使用分数算法处理退回电子邮件


 类似资料:
  • 在apcahe服务器中,我希望以cron的形式运行一个PHP脚本,它在后台启动一个PHP文件,并在文件启动后立即退出,并且不等待脚本完成,因为该脚本需要大约60分钟才能完成。如何做到这一点?

  • 我看到了不同的PHP二进制文件,比如非线程或线程安全? 这是什么意思? 这些软件包之间有什么区别?

  • 本文向大家介绍PHP中多线程的两个实现方法,包括了PHP中多线程的两个实现方法的使用技巧和注意事项,需要的朋友参考一下 PHP本身是不是支持多线程的,不过我们可以借助其他的方法来实现多线程,比如 shell 服务,比如 web 服务器,本文我们来讲讲这两个方法如何实现。需要的朋友可以来参考一下。 多线程是java中一个很不错的东西,很多朋友说在php中不可以使用PHP多线程了,其实那是错误的说法P

  • 问题内容: 我发现了这个称为thread的PECL软件包,但是还没有发布。PHP网站上没有任何内容。 问题答案: 我知道没有可用的东西。第二个最好的办法是仅使一个脚本通过CLI执行另一个脚本,但这有点基本。根据您尝试执行的操作以及操作的复杂程度,这可能是,也可能不是。

  • 我在mysql字段中有这些数据: 我正在尝试从第一个单词到双线断裂的预处理匹配。我试过了: 这不会返回任何行。我还尝试了< code>m和< code>s修饰符,它们不能返回正确的字符串。我还尝试了不返回任何内容的< code>\r\n。 你是怎么做到的

  • 问题内容: 我想要做的是异步地从数据库或内存缓存中加载一些数据。 我知道我知道。“ PHP不支持线程”。 但是register_tick_function呢?确实不是线程吗? 有没有人利用register_tick_function完成任何类型的预测性预加载或实际上进行了任何后台处理? 问题答案: PHP当然可以支持线程。从SQL /NoSQL数据库并行加载数据绝对有可能。请参阅PHP手册,在gi