Symfony,Swift Mailer,CRON JOBS,&共享主机服务器

时间:2013-01-09 19:43:42

标签: symfony cron symfony-1.4 shared-hosting swiftmailer

在我解决这个问题之前,我想让社区运行它以获得反馈。

问题:

  1. 我的方法可行吗?即使它可以这样做吗?
  2. 这是正确/最有效的解决方案吗?
  3. 如果不是正确的解决方案,那会是更好的方法吗?
  4. 问题:

    1. 需要通过该应用程序发送大量电子邮件。
    2. 共享托管服务器每小时最多只允许发送500封电子邮件,然后才能标记为垃圾邮件发送者
    3. 发送批量电子邮件时服务器超时
    4. 建议的解决方案:

      在提交任务时(即用户使用表单和前端模板提供所有必要的电子邮件信息,选择目标受众等),操作将会:

      1. 确定将电子邮件发送到
      2. 的记录数(来自存储的联系人数据库)
      3. 如果上述#1中的记录数超过400:
      4. 为数据库中的所有这些记录分配批次编号。
      5. 运行以下CRON作业:
      6. 每小时,批处理“X”中选择400条记录,并发送保存的电子邮件模板,直到没有批次“X”的记录为止。每次发送400批次时,它的批号将被删除(因此在下一个小时内不会再次选择它)。
      7. 如果在它之前安排了未完成的CRON JOB(即当前正在运行),它将被放入队列中。
      8. 其他澄清: 要发送这些电子邮件,我只需使用以下代码遍历SWIFT邮件:

         foreach($list as $record)
         {
              mailers::sendMemberSpam($record, $emailParamsArray); 
              // where the above simply contains: sfContext::getInstance()->getMailer()->send($message); 
         }
        

        *其中$ list是batch_number为“X”的记录列表。

        我不确定这是最有效的解决方案,因为它似乎会使服务器陷入困境,如果列表或电子邮件很长,最终会超时。

        所以,我现在只是在寻找意见......先谢谢。

0 个答案:

没有答案