如何每 5 分钟重复一次 mysql 查询
How can I repeat a mysql query every 5 minutes?
>我有一个看起来像这样的sql查询:
<?php
include("settings.php");
$sql = conn->query("SELECT * FROM table LIMIT 1");
$content = $sql->fetch_assoc();
$id = $content['id'];
/* PHP Operations here. */
?>
现在,我希望能够每隔 5 分钟重复一次此 sql 查询,因为表内容会发生变化。我该怎么做?有没有办法在javascript或ajax脚本中执行sql请求?
如果您只想刷新内容,请在 settimeout() 中使用 AJAX 调用。
解决方案
使用 cron 作业。如果您显示的文件是"/var/www/some/file.php",则只需以运行Web服务器的用户身份执行以下命令(例如,"www-data"或"apache"):
{
# Will output to stdout the current user's crontab
crontab -l;
# Add a line to execute the php script every 5 minutes
echo '*/5 * * * * '"$(which php5) /var/www/some/file.php";
} | crontab - # The current user's crontab will be replaced by stdin
假设
- 你正在使用Linux。
- 您正在使用 apache httpd。
背景
PHP Web应用程序是由 Web 服务器运行以响应 HTTP 请求的 PHP 脚本。这里需要的是运行 PHP 脚本,不是为了响应 HTTP 请求,而是为了响应时间事件,例如,自上次运行以来已经过去了 5 分钟。
好吧,根据问答,真正的问题会有这样的解决方案:
文件
- 你有一个用户直接请求的PHP文件,我称之为"/index.php",位于"/var/www/index.php"。这有页面的呈现和一些javascript。
- 你有第二个PHP文件,它是由用户间接请求的,我称之为"/bg.php",位于"/var/www/bg.php"。此文件的内容仅具有更新数据库的例程,并返回 javascript 代码或其他内容。
索引.php
在这里,您将拥有类似以下内容:
<script type="text/javascript">
/* Have jquery included before */
function poll_the_server(){
/* Get the data from the server with ajax */
var jqxhr = $.ajax( "/bg.php" )
.always(function(){
/* Prepare the next run */
setTimeout(poll_the_server, 300);
})
.done(function(){
/* Succeded: Do whatever you want with your data */
})
.fail(function(){
/* Error: you may ask the user what to do */
});
}
/* Do the first call */
setTimeout(poll_the_server, 300);
</script>
编辑:
引用
http://api.jquery.com/jquery.ajax/
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- 根据Angular.JS上一次的内容禁用选择
- 一次又一次地在新的和相同的选项卡中打开一个url
- 只在宽度以下和宽度以上各准备一次
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- mysql查询一次在单个查询中的多个表中插入记录
- Ajax发布到PHP脚本,每5秒查询一次MySQL数据库的性能/问题
- 如何每 5 分钟重复一次 mysql 查询
- MySQL事件每快照5分钟更新一次
- 每5秒读取一次MYSQL表,并在PHP页面上动态显示结果,而无需刷新
- 每 5 秒调用一次 MySQL 查询