日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 定时缓存,php如何定时删除缓存??

發布時間:2024/10/12 php 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 定时缓存,php如何定时删除缓存?? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

php運行在windows環境下:

例如:

設置用戶頭像的時候,用戶上傳了源文件,服務端保存了源文件和修改后的文件。源文件被存放在 tmp_file 文件目錄下,修改后文件被放在 header_file 目錄下。

我想要定時清理 tmp_file 下保存的源文件??不知道如何做到??能否實現如下這種:

$file=$_FILES['upload_img'];

// 保存源文件

move_uploaded_file($file['tmp_name'],'tmp_file/'.$file['name']);

// 在對源文件做相應處理(圖片裁切、縮放之類的操作)

$cav=imagecreatefromjpeg('tmp_file/'.$file['name']);

.......

// 保存處理好的文件

imagejpeg($cav,'header_file/'.$file['name']);

// 定時清理掉對應源文件,這一步怎么實現??

unlink('tmp_file/'.$file['name']);

若是使用:

set_time_limit(0);

ignore_user_abort();

sleep(60);

unlink('tmp_file/'.$file['name']);

的確是可以定時清理。不過執行一次后,必須等待60s后才能再次執行!如果突然在短時間內有大量圖片要處理時,就會堵塞執行不了。

如何使php能夠像js的 work 線程那樣,可以額外執行一個js腳本去處理需要耗費大量時間的線程而不會導致主線程卡主不執行??

回復內容:

php運行在windows環境下:

例如:

設置用戶頭像的時候,用戶上傳了源文件,服務端保存了源文件和修改后的文件。源文件被存放在 tmp_file 文件目錄下,修改后文件被放在 header_file 目錄下。

我想要定時清理 tmp_file 下保存的源文件??不知道如何做到??能否實現如下這種:

$file=$_FILES['upload_img'];

// 保存源文件

move_uploaded_file($file['tmp_name'],'tmp_file/'.$file['name']);

// 在對源文件做相應處理(圖片裁切、縮放之類的操作)

$cav=imagecreatefromjpeg('tmp_file/'.$file['name']);

.......

// 保存處理好的文件

imagejpeg($cav,'header_file/'.$file['name']);

// 定時清理掉對應源文件,這一步怎么實現??

unlink('tmp_file/'.$file['name']);

若是使用:

set_time_limit(0);

ignore_user_abort();

sleep(60);

unlink('tmp_file/'.$file['name']);

的確是可以定時清理。不過執行一次后,必須等待60s后才能再次執行!如果突然在短時間內有大量圖片要處理時,就會堵塞執行不了。

如何使php能夠像js的 work 線程那樣,可以額外執行一個js腳本去處理需要耗費大量時間的線程而不會導致主線程卡主不執行??

定時任務用crontab,這是最好的選擇。

web環境下PHP沒法做到,寫個shell,然后cronjob

什么樣的理由讓你想留60秒呢,如果沒什么考慮的話,在末尾unlink就可以了。這個場景下,我認為沒有必要增加代碼的復雜度了。

為什么不直接用memcache,他本身自己可以實現超時緩存自動刪除

保存上傳時間,然后判斷當前時間與上傳時間的時間差。

時間差大于60秒就刪除。

顯然 樓主裝的windows 不想裝cgwin,不想用crontab,可以試試:

``

if(random(1,10)==6){

// 掃目錄 清文件

}

``

隨機條件我只是舉個栗子,

你可以自己發揮:時間種子啊…touch某個文件的時間啊…等等等等

不至于每個用戶都要等啊…

刪幾十百個文件沒問題,

如果你磁盤 I/O 特別高,服務器負載高

那還是做到crontab里去吧。

windows的定時任務也是可以做到crontab效果的喲(雖然有點坑爹的是,開啟自動啟動時,每次改服務器密碼的時候非常痛苦)

如果你非的用ignore_user_abort,那就數據庫或者redis設置一個標志唯一性

相關標簽:php

本文原創發布php中文網,轉載請注明出處,感謝您的尊重!

總結

以上是生活随笔為你收集整理的php 定时缓存,php如何定时删除缓存??的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。