0

我是 php 和数据库方面的新手,但是环顾四周,找不到解决方案。

我要完成的工作:

我有一张图片幻灯片。图片来自 Flickr 的 API,存储在数据库表中,然后将数据库数据生成为 JSON 链接。

我的问题是,有没有办法执行每次幻灯片循环遍历 JSON 链接中的所有图像时调用 flickr API 的 php 脚本?我可以指定每 1 分钟一次,但如果幻灯片中只有几张图像,那可能太长了。

如果你做不到,

有没有办法在美国东部标准时间晚上 9 点到凌晨 3 点仅在星期五每 1 分钟执行一次脚本?

4

4 回答 4

1

答案是肯定的,有一种方法,但如何完全取决于您使用的幻灯片。如果你没有构建它,我会寻找一个可能在幻灯片结束时运行的函数来触发它循环到开头。当您找到该函数时,您可以更改它以运行连接到 API 的脚本以获取新图像。

您可能必须将幻灯片中的循环延迟足够长的时间才能加载新图像。

于 2013-11-08T23:15:29.750 回答
1

这是您最后一行的 cron 规范:

# Friday from 9pm to 11:59pm
* 21-23 * * 5 php -q /path/to/script.php
# Saturday from midnight to 2:59am
* 0-2 * * 6 php -q /path/to/script.php
于 2013-11-08T23:15:53.793 回答
1

关于如何安排它的具体问题,就像

* 21-23 * * 5 /path/to/php /path/to/script
* 0-2 * * 6 /path/to/php /path/to/script

在您的 crontab 文件中。最容易分成两部分,因为您实际上有两天以上运行的命令。第一个 * 表示每分钟运行一次。

http://en.wikipedia.org/wiki/Cron

你画廊里的东西,不是特别清楚,就是你在做什么。

于 2013-11-08T23:16:50.070 回答
0

你真的有这两个方面,你可能需要彼此独立地做。

首先,您需要一种方法来检查 Flickr API 的更新。我建议这可能是一个脚本,它构建可用于服务本地消费的数据的缓存表示。您可以通过 cronjob 触发此操作(您已经在此处获得了有关如何配置 cron 的很好的答案,因此我将跳过它)。

您不需要客户端启动对 Flickr API 的调用,就好像您有 60 个并发客户端每分钟检查更新一直到 Flicker,实际上您平均每秒检查一次更新。

您对 Flickr 数据的缓存表示可以采用您认为易于使用的任何格式(也许是 JSON)。您将在页面加载时将缓存数据公开给前端(即 javascript),并通过可以通过 AJAX 调用以获取缓存数据的一些服务器端脚本。

您可以通过让他每分钟调用一次服务器端脚本并将最新数据填充到某个 javascript 变量中来使数据更新为独立于滚动行为的 javascipt。

然后,您可以每分钟直接更新幻灯片,或者按照您的建议,在滚动循环回到开头时从最新数据(已经在 javascript 中)重建幻灯片。

您可能还会考虑的一件事是,如果可能的话,请保留有关幻灯片信息上次在 Flickr 中更新的时间、上次缓存在服务器上的时间以及上次 javascript 从服务器中提取数据的时间。通过比较这些更新时间,您可以在重建缓存、重建 javascript 中的表示等方面省去很多麻烦,只需确定是否确实需要首先进行更新。

于 2013-11-08T23:39:36.397 回答