【问题标题】:Load php script to run with cron加载 php 脚本以使用 cron 运行
【发布时间】:2012-03-11 15:56:39
【问题描述】:

首先,为我的英语道歉。

我正在为我的网络订阅创建一个脚本。该脚本将使用 cron 运行,但我怀疑会出现。

我的主机限制为每2分钟25封邮件,每小时200封邮件,php max_execution_time配置为120。脚本每分钟应该发送6封邮件。由于这个限制,我得到了运行脚本所需的时间,并且睡眠时间还剩 1 分钟,所以不喜欢做的是用 GET 发送的新参数重新加载脚本。

当一个脚本由 cron 运行时,我不能使用 javascript 或 header 位置,所以不知道如何使这个脚本重新加载新的参数。

请问有谁知道吗?

【问题讨论】:

  • 这里没有足够的信息来提供一个好的答案。如果您使用 GET 变量启动脚本,这些变量是由什么提供的? MySQL 数据库?工作站上的 Excel 电子表格? PHP数组?让你的问题更完整,答案也会更完整。
  • 另请参阅:stackoverflow.com/questions/917251/php-email-and-cron ...虽然此时我不知道您的问题是基本编程还是适应提供商限制的策略。
  • 很抱歉给您带来不便,我的意思是。流程如下,用户订阅一个订阅列表,并创建web管理员向该列表发送邮件。我有一个存储所有内容的数据库。 24:00 收到邮件后,发送给用户。
  • cron 会在 24:00 运行,他们第一次会读取已发送邮件的 ID,以及订阅者的数量。由于限制,它应该每 2 分钟发送 6 封电子邮件,因此脚本将读取前 6 个用户,向他们发送邮件并等待两分钟。只需两分钟,脚本就会调用自己,通过 GET 传递数据(电子邮件 ID、最后向您发送邮件的用户、总订阅者)。
  • El problema es que no se como hacer que el script se llame asi mismo con los nuevos parametros enviados por GET, porque al ser un cron, no interviene un navegador, y no se si funcionaria Header Location de php.

标签: php email cron


【解决方案1】:

您可以使用cron 通过命令行或作为标准 Web 脚本的变通方法来启动您的 PHP 脚本。如果你想要后者,你可以wget http://localhost/whatever.php > /dev/null 2>&1。请注意输出重定向,因为使用 cron 启动的进程中的任何输出都将被邮寄给给定 crontab 的所有者,因此最好分别抑制输出和记录错误或通知。

无论如何,crontab 允许在启动之间有一分钟的间隔,因此您的脚本超时应该不会有问题。只要确保您的脚本每次启动发送的邮件不超过 12-13 封(在 mail() 调用之间放置 5 秒的睡眠时间),您就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-03
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多