【问题标题】:How to make the server do things after some database actions? [closed]在一些数据库操作之后如何让服务器做一些事情? [关闭]
【发布时间】:2014-09-09 20:12:04
【问题描述】:

标题可能有点不清楚。但是我的网站有这个问题。我有一些数据存储在 sql 数据库中,包括时间戳。但是现在我需要对这些数据进行一些计算并在该时间戳之后的一段时间后发送一封电子邮件。但是我该怎么做呢?由于我的网站和数据库只包含静态数据...

所以要明确一点:我有一个与数据库共享主机的网站。在该数据库中,所有项目都包含时间戳值。现在我需要服务器在该项目的时间戳之后的特定持续时间内对数据库中的每个项目执行操作,例如发送邮件。

这可能是一个简单的问题,但我不知道要寻找什么......

编辑:我想我已经找到了使用 setcronjob.com 的解决方案,谢谢!

【问题讨论】:

  • 创建一个定期运行的 cron 作业。它执行数据库查询以查找与时间戳条件匹配的数据,并发送电子邮件。
  • 为什么我会觉得每个人都有错误的印象 - ?
  • @Fred-ii- cronjob 不是答案?
  • @Dagon 我的印象是 OP 想要或需要使用 timediff “在该时间戳之后的一段时间后”
  • 3票接近,他最好快点

标签: php sql timestamp


【解决方案1】:

您可以每隔一段时间运行一项作业,以确定该时间戳的年龄,然后发送您需要发送的电子邮件。但是如何运行作业呢?

  • 如果您可以在您的主机上运行计划作业(即,您拥有机器/VM 并且不在共享主机上),您可以每 x 天/小时/分钟/秒运行一次这些作业。在 Linux 中查找 cron 作业,Windows 查找 Task Scheduler(我认为)
  • 如果您使用共享主机,那就更难了。也许您可以将一些静态页面转换为运行这些作业的动态页面?根据它们运行所需的时间,您可能希望查看在新线程中运行这些作业 (pthreads)。您需要在主机上为此安装 pthreads,因此 #1 - 计划作业 - 绝对更可取。

【讨论】:

  • 是的,我在共享主机上,所以我不拥有这台机器...如何创建一个运行脚本的动态页面,而无需在浏览器中打开页面?跨度>
  • 最好的方法是使用您的用户浏览器使用 javascript 向服务器上的 API 服务发起一些 XHR/ajax 请求。这意味着您的访问者可以很好地获得页面,而无需向页面添加任何负载(查找 XMLHttpRequest 或 $.ajax,如果您使用的是 jQuery)。这确实取决于您以检查数据库所需的频率获得页面访问。如果您不能依赖它,您可以查看一些外部轮询服务,但由于虚拟机每月花费 5/10 美元,因此使用 cron 可能更容易。
【解决方案2】:

您可能希望使用 Cron 任务在数据库中搜索时间戳接近当前时间的每一行。从那时起,您可以简单地进行计算并发送电子邮件。

你能告诉我更多关于“那个时间戳之后的特定持续时间”吗?

【讨论】:

    【解决方案3】:

    此外,您可以在数据库中设置一个按计划运行的作业,以进行计算并通过电子邮件发送结果。

    【讨论】:

      猜你喜欢
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多