【问题标题】:run a function multiple times without waiting for response in php多次运行一个函数而不等待php中的响应
【发布时间】:2017-12-23 05:08:03
【问题描述】:

我有一个邮件功能和 10 万个电子邮件 ID。我想多次调用一个函数,比如 10 次,每次它会处理 10k 封电子邮件。我想在不等待响应的情况下调用此函数,只需调用一个函数,然后再调用另一个函数而没有得到响应。

我尝试使用 pthread 进行多线程,但无法成功运行。

我正在使用我的 sql 数据库

【问题讨论】:

  • 你可以试试异步ajax并行运行
  • 我正在使用 cron 调用我的 php 文件,因为邮件是预定的 mails.for 那我如何使用 ajax.. 请解释一下
  • 那么如果你使用的是cron,你就不能使用ajax。
  • 您可以安排多个 crons。但我不确定它是否会影响性能速度
  • 我试过这个会影响服务器的性能。

标签: php multithreading asynchronous sendasynchronousrequest bulk-mail


【解决方案1】:

您可以为此使用多个 PHP 进程,就像您可以使用多个线程一样,PHP 没有太大区别,因为 PHP 不共享任何内容。

您可能希望等待它完成并注意到任何错误,但不想等待完成后再启动另一个进程。 Amp 非常适合此类用例。它的amphp/parallel 包使得多处理比使用 PHP 的原生 API 更容易。

您可以找到usage example in the repository

【讨论】:

  • 好像只兼容 PHP 7.0 或更高版本?我可以用于较低的 PHP 版本的任何可能性可能是 V 5.0x 吗?
  • @ShyamBhimani PHP 5.0,认真的吗?它已于 2004 年发布。PHP 5.x 已停止支持,并且不会再收到任何错误修复。考虑升级。
【解决方案2】:

php name_of_script.php &>/dev/null &

这一行将在后台启动您的脚本。 我想你不想控制一个关键过程,比如从浏览器发送邮件?如果您的连接中断几秒钟怎么办?

如果是这样:仍然使用命令行方法,但使用 exec

$command = '/usr/bin/php path/to/script.php & echo $!');

【讨论】:

    猜你喜欢
    • 2013-02-21
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2015-12-05
    • 1970-01-01
    相关资源
    最近更新 更多