繁体   English   中英

使用cronjob更新和显示MySQL查询的结果

[英]Using a cronjob to update and display results of a MySQL query

我在如何实现一个动态网站方面遇到了麻烦,该网站通过ajax将数据提取给用户。

在ajax的末尾是一个简单的php脚本,该脚本打开一个与我的数据库的MySQL连接并获取一些结果(对所有用户而言都是相同的,没有任何特定于用户的结果),以便稍后在表中显示它们。

这就是我到目前为止的事情。 它正在运行,但是当成千上万的用户打开该网站时……这不好,而且我认为我的服务器更新得不够快。

因此,我的意图是每隔x秒仅更新一次所需的结果,并且可能会节省很多资源。

问题是我不知道该如何实现这一部分,请问能得到一些帮助吗? 还是我应该忘记Ajax的东西并开始使用node.js?

我有一个相当不错的根服务器,它也是我的网站空间,因此可以安装一些额外的应用程序。

一个真正的使用memory-cachenode-cron Node.js解决方案:

var cache = require('memory-cache');
var CronJob = require('cron').CronJob;

var job;
var jobStarted = false;
var rateLimitExceeded = false;

var job = new CronJob('5 * * * * *', function() {
    // Runs every 5 seconds
    doALongDataBaseOperation(function(err, data) {
        cache.put('cacheId', data);
    });
});

app.get('/path/that/needs/caching', function(req, res) {
    cache.get('cacheId', function(e, data) {
        if (data) {
            res.end(data);
        } else {
            // contingency in case the cache doesn't exist
            doALongDataBaseOperation(function(err, data) {
                res.end(data);
                cache.put('cacheId', data);
            });
        }
    });
});

您可以使用Memcache(或类似的东西)来缓存数据。 您的cronjob可以根据需要运行和刷新缓存。

然后,您的AJAX可以调用一个简单的PHP脚本以从缓存中检索数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM