Cron Job - 如何在特定日期之间执行两次脚本?

时间:2013-11-08 23:09:38

标签: php mysql json cron

我是php和数据库的新手,但已经环顾四周,无法找到解决方案。

我正在努力实现的目标:

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

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

如果你不能那样做,

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

4 个答案:

答案 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中的表示等节省了很多麻烦。