我是php和数据库的新手,但已经环顾四周,无法找到解决方案。
我正在努力实现的目标:
我有一张图片幻灯片。图像来自Flickr的API,存储在数据库表中,然后数据库数据生成JSON链接。
我的问题是,有没有办法在每次幻灯片循环播放JSON链接中的所有图像时执行调用flickr API的php脚本?我可以指定每1分钟一次,但如果幻灯片中只有少量图像,则可能太长。
如果你不能那样做,
有没有办法在东部时间晚上9点到美国东部时间凌晨3点每隔1分钟执行一次脚本?
答案 0 :(得分:1)
答案是肯定有一种方法,但一切都取决于您使用的幻灯片。如果你没有构建它,我会寻找一个可能在幻灯片结束时运行的函数来触发它循环到开头。当您找到该功能时,您可以更改它以运行连接到API的脚本以获取新图像。
您可能需要延迟幻灯片中的循环,以便加载新图像。
答案 1 :(得分: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
答案 2 :(得分: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
你的画廊里的东西,并不是特别清楚,正是你在做什么。
答案 3 :(得分:0)
你真的有两个方面,你可能需要彼此独立。
首先,您需要一种检查Flickr API以获取更新的方法。我建议这可以是一个脚本,它构建一个可用于服务本地消费的数据的缓存表示。你可以通过cronjob触发这个(你已经在这里有关于如何配置cron的好答案所以我会跳过它)。
您不是客户端发起对Flickr API的调用,就好像每分钟有60个并发客户端检查更新一直到Flicker一样,您实际上平均每秒检查一次更新。
您对Flickr数据的缓存表示可以是您认为易于使用的任何格式(也许是JSON)。您可以在页面加载时将缓存的数据暴露给前端(即javascript),并通过一些可以通过AJAX调用的服务器端脚本来获取缓存数据。
您可以将数据更新为javascipt,与滚动行为无关,让他每分钟调用一次到服务器端脚本并将最新数据填充到某个javascript变量中。
然后,您可以每分钟直接更新幻灯片,或者按照您的建议,在滚动循环回到开头时,从最新数据(已经在javascript中)重建幻灯片。
您可能还会考虑的一件事是,如果可能,请在Flickr上最后一次更新幻灯片信息时保留数据,最后一次在服务器上缓存,以及javascript最后一次从服务器中提取数据。通过比较这些更新时间,您可以通过简单地确定是否确实存在首先更新来为重建缓存,重建javascript中的表示等节省了很多麻烦。