我需要存储上次运行脚本的时间,以确保它不会读取旧项目(在这种情况下是推文)。什么是追踪这个的最好方法?
感谢。
答案 0 :(得分:2)
你没有提供有关细节的零信息,所以我将是一般的。
file_put_contents()
将其写入本地文件,并使用file_get_contents()
sqlite
将其写入本地数据库答案 1 :(得分:2)
生成时间戳并将其保存到可在下一次迭代中读取的日志文件中。
$time_ran = time();
function saveTimeRan(){
$fh = fopen('/path/to/a/new/log' 'w+');
fwrite($fh, $time_ran);
fclose($fh);
}
function getTimeRan(){
$fh = fopen('/path/to/a/new/log' 'r+');
$time = fgets($fh);
fclose($fh);
return $time;
}
我可能建议你把它作为一个对象并将saveTimeRan的内容放在magic __destruct函数中,所以当你的对象是GC时它会节省时间。只是一个建议。您可以将推文功能放在其他对象方法中,并创建一个全面的界面。或者,您可以将值保存到数据库字段,并在每次迭代时调用它。
答案 2 :(得分:2)
什么是追踪的最佳方式 此?
最好的方法是在内存中跟踪它(redis / apc / memcached / etc)(由任何持久存储(mysql / mongodb / redis / etc)备份。你应该尽量避免触摸光盘( I / O)因为与内存速度相比,这非常慢。
您可以通过两种方式配置redis:
这是一种权衡(性能与安全性)
APC和Memcached没有持久存储,所以你必须使用例如mysql。
答案 3 :(得分:0)
您可以将时间戳存储在数据库或文本文件中。
答案 4 :(得分:0)
您可以让脚本在每次运行时为文本文件写入时间戳/日期。然后,您可以选择在运行脚本之前读取该文件,以确保在x时间过去之前不再运行它,或者仅在某个条件为真时才运行。
结帐file_put_contents和file_get_contents。
-Ryan