php - 我的脚本和 hostgators 托管服务,以及一些附加信息

标签 php mysql cron xml-rpc

<分区>

大家好,我想问几个问题。我正在使用托管在共享服务器上的 hostgators 业务计划,当我与他们讨论限制时,他们告诉我发送电子邮件的限制是每小时 500 封(我想但不太确定可能是 1000 封,但事实并非如此重要。)而且我认为当我的工作上线时我会遇到问题,所以我正在考虑制作某种脚本(PHP)来监控外发电子邮件允许发送 350 封电子邮件并将其余的搁置直到一个小时过去,然后再发送 350 等等,依此类推。我正计划使用 XML RPC 为引擎构建一个更新系统并与远程服务器通信,如果有任何更新可用,可以开始读取它们并将它们应用到系统 由 CRON 触发。这就是我现在想提供的信息:

<强>1。邮件监控:
1.1如何获取邮件发送量?
1.2 我应该如何为其设置 CRON?(如果我设置 CRON 的时间少于 5 分钟,我认为它会被删除。)或者我应该使用替代方法吗?
1.3 谁能给我一个示例脚本?
<强>2。 XML RPC 更新程序:
2.1制作它的最佳方法是什么?
2.2除了“检查”->“响应[true|false]”->“读取更新内容”->“写入更新内容”之外,还得用什么方法?
2.3 制作这样的系统是个好主意吗?制作它的最安全方法是什么?

最佳答案

您的数据库中始终可以有一个表,用于设置特定日期发送的电子邮件数量。您可以在 PHP 查询中使用 UPDATE email_count SET emails = emails + 1 WHERE date = $current_date($current_date 是 PHP 必须从时间戳中获取的变量)和之前发送电子邮件,使用 SELECT 查询检查此值。

当然,您需要决定自己想要什么。如果达到限制,则禁止发送电子邮件(我将以用户注册确认电子邮件为例),或者只是限制(推迟)它们。如果您决定禁止,您的工作很简单:如果金额已经达到限制,您只需禁用注册表即可。

如果您决定节流,您将遇到非常复杂的问题,需要非常复杂的解决方案。您将需要生成电子邮件(或者作为它们的现有文本格式,或者只是可变内容)并将它们与 To: 值一起存储在数据库中。您还需要准确性和设置 cron,以便在接下来的一个小时内,您首先解析前一小时的“遗留” 电子邮件。

但是,如果前一天不仅产生了这么多电子邮件,而且之后的一个小时也“阻塞”,该怎么办?您需要衡量和建模您网站的使用情况,并获得最佳示例。那里可能有一些方程式可以帮助您设置节流模式。限额的一半是每小时预留给可能的遗留 电子邮件?服用一些 population statistics methods在帐户?有多种选择。

请注意,如果服务器上安装了 CLI PHP,cron 也可以执行 PHP 脚本。只需确保以更适合纯文本报告文件的方式生成 cron-ran 文件的输出,因为可以将 cron 设置为将文件的输出保存到文件系统某处的文件中。

00 * * * * /usr/local/bin/php /home/john/myscript.php

获取远程更新需要您注意防止任何恶意数据。您应该尝试将更新信息封装到压缩容器(gzip?)中并计算其校验和。方法应该是:

  • 查询远程服务器
  • 检查远程服务器上的差异/更新
  • 获取响应(如果有差异)
  • 通过一些清理和散列检查本地差异
  • 合并获取的更新

如果您还要设置远程服务器的系统(XML-RPC 可能会发送什么作为响应),我会尝试实现一种具有足够安全检查的可靠方法。但要尽量防止过早优化和过度杀伤。

但是,您还可以使用其他包装器与远程服务器进行通信。取cURL举个例子。

关于php - 我的脚本和 hostgators 托管服务,以及一些附加信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11845601/

相关文章:

docker - 在docker容器上运行crontab不运行?

model-view-controller - 从 cron(或任何 URL)调用 Kohana 助手

php - 在 PHP 中将 MySql 数据库记录转换为 XML

php - 为什么这不更新 MySQL 数据库?

MySQL 无法识别图像

PHP MySQL JSON 查询

php - 文件类型在 PHP 中不起作用

php - 更新 MySQL 中的时间戳

java - 在 Play 2.6.X 中使用数据库调度程序线程池时出现错误

linux - 在哪里可以找到 Centos 6 cron 作业 .sh 文件