如何:在服务器中每 24 小时执行一次代码块?

Posted

技术标签:

【中文标题】如何:在服务器中每 24 小时执行一次代码块?【英文标题】:How to : executing a block of code every 24 hours in a server? 【发布时间】:2011-10-31 02:25:54 【问题描述】:

我想每 24 小时从网站获取某些数据。该代码必须每 24 小时执行一次并更新 mysql 数据库。我如何在没有任何用户事件的情况下完成此操作?

稍后我将使用相同的数据来找出总差异。

totalIncrement = currentData - earlyData

早期数据是从 MySQl 数据库中获取的,而当前数据是从外部网站查询中获取的。

我听说过 linux 上的 cron,但从未尝试过。任何机构都可以给出一个基本的想法吗?或任何可靠的链接?

也许我想这样做::

首先创建一个 php 程序/文件来完成获取工作。 第二次每隔 24 小时左右执行一次那个 PHP 文件...

【问题讨论】:

cronjob 绝对是您要找的。互联网上有大量资源解释它们是什么以及如何使用它们。你可以从en.wikipedia.org/wiki/Cron开始。 您是否尝试过 Google 获取有关 Cron 作业的教程?来吧,伙计——你至少要努力。 @Lucanos。为了搜索 Cron 作业,您需要知道它被称为“cron 作业”。当我切换到 Linux 时,这并不明显。 @AlexanderPogrebnyak:同意,但在他的实际问题中,他提到“cron”-“我听说过 linux 上的 cron,但从未尝试过。 ”所以这并不是说他没有什么可做的。 【参考方案1】:

打开一个外壳。 (停止 crond 服务 service crond stop) 使用 vi(或其他编辑器)编辑 cron 文件或键入“crontab -e”进行编辑。 编辑后点击“ESC”。然后“:wq”,保存退出。 (再次启动服务service crond start) 如果使用 crontab -e,则不需要停止和启动服务。

您的脚本现在应该正在运行。 检查语法here 或here。 要查看您所做的更改,请键入“crontab -l”。

我希望这会有所帮助。

【讨论】:

-1: cron 既不需要 root 访问权限(默认情况下允许大多数用户使用),也不需要重新启动守护程序来获取新的 crontab 文件。此外,您有效地告诉人们如何使用“vi”。当然 crontab -e 不(必须)使用“vi”,它可以使用 VISUAL 环境变量中的任何编辑器。一些发行版默认使用另一个编辑器。 crontab -e 可以调用“vi”,具体取决于它的配置方式。这种情况下不需要重启服务;非root用户也可以使用。 在现实生活中,您必须停止服务才能进行任何更改,因为许多脚本是相互依赖的。例如更改其他脚本读取的表。【参考方案2】:

在编辑 crontab(5) 时忽略启动和停止 cron 守护程序的建议是安全的。 crontab(1) 实用程序通知 cron 守护程序需要重新读取 crontab(5) 文件并且更改将立即生效。您需要重新启动 cron 守护程序的唯一原因是,如果您在没有 crontab(1) 实用程序的情况下直接编辑了 crontab(5) 文件。

【讨论】:

请考虑对与此相关的答案发表评论。我认为你的观点是有效的。【参考方案3】:

首先你必须为这个例子创建一个 php 文件 cron.php

因此,每当您访问此链接 www.yourdomain.com/crom.php 时,都会执行脚本

现在在 cron 作业中添加此链接。要在您的服务器上设置 cron 作业,您可以使用 this php 类

【讨论】:

为什么每个人都在不解释他所说的错误的情况下投反对票?

以上是关于如何:在服务器中每 24 小时执行一次代码块?的主要内容,如果未能解决你的问题,请参考以下文章

如何安排代码在 Elixir 或 Phoenix 框架中每隔几个小时运行一次?

求一段24小时执行一次的JS代码

如何在 .NET 中每小时(或每小时的特定时间间隔)引发一个事件?

如何在Javascript中每24小时将变量重置为0?

cookie控制一个IP 24小时只执行一次JS退出弹窗代码

在 C# 中每小时检查一次网页