您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關使用php怎么定期拉取數據對比,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
php定時執行任務
關于定時執行,最常見的方法是利用系統級別自帶的功能
linux ( crontab 定時任務命令) windows計劃任務
這需要手動修改系統的任務文件,然后使其生效
手動在linux添加定時任務
# crontab -e
運行該命令 打開任務編輯 在其中輸入任務內容,然后Esc :wq保存退出
任務示例
0 0 * * * /www/siam/test.sh
前面的是運行周期的配置,后面的是sh腳本的路徑,該方式一般需要自己編寫sh腳本來執行
寶塔面板快速計劃任務
如果我們使用寶塔面板當成運維工具,那么我們就可以很方便地添加計劃任務了,如下圖,寶塔中內置了挺多計劃任務的類型,如定時請求URL,運行腳本,備份文件等等。
可視化配置,帶給我們極大的便利,維護、添加都節約了很多的時間。
這也是為什么寶塔受到那么多人喜愛的原因之一吧。
寶塔面板計劃任務的面板添加
取巧云監控定時執行
以上兩種方式都需要服務器的權限,我們才可以管理定時任務,假設我們剛入門時使用的是虛擬主機,沒有權限設置腳本運行,那么該如何實現這種功能呢?
這里記錄了我以前學習時利用的一個小方案,大家可以在其中學習一下。
云監控,是很多云服務商提供的一項服務,它可以用來測試、分析接口或者網站的穩定性和執行效率。
我們可以在服務商的后臺類似寶塔面板一樣去添加任務,然后服務商就會按我們設置的頻率,定期訪問網址,獲取網址的正確執行、時間等信息,記錄到他們后臺,提供給用戶查看分析改進。
我們可以利用這種特性,由服務商向我們的服務發起請求,我們可以填寫一個php腳本的url,在其中判斷當前時間,如果當前時間周期已經到了你設置的時間,則執行下面的內容
同時因為云監控是不間斷地發起(一般最細顆粒是30s) 如果不能重復運行的任務,我們需要及時地把任務標記為已經執行。
可以在本地寫文件,當文件鎖。
不同云監控服務商有不同的設置和服務提供,網上有挺多免費的。大家可以找一找,如果找不到好的,也可以聯系我QQ交流一下。
現代化PHP
PHP發展了這么久,其實已經有了很大的改進,比如PHP5OOP特性的完善、PHP7的性能提高、Swoole生態的出現,讓PHP能做的事越來越多,越做越好。
在當今環境中,我們可以使用SWOOLE常駐內存的特性完成很多事,
這里推薦一下EasySwoole這款基于Swoole環境的框架。
關于定時任務在EasySwoole框架中的文檔地址點這里EasySwoole Crontab 定時器
常駐內存的程序,在服務器上后臺穩定運行,
EasySwoole中提供了豐富的組件,比如傳統PHPFPM環境很難解決的Mysql數據庫連接池、協程Redis客戶端、協程Http客戶端、芒果DB客戶端等等
還有我們這個主題有的一個定時任務的模塊,下面看一小段demo代碼
首先在主環境事件代碼中開啟定時任務
public static function mainServerCreate(EventRegister $register) { // 開始一個定時任務計劃 Crontab::getInstance()->addTask(TaskOne::class); }
定時任務的配置和內容
namespace App\Crontab; use EasySwoole\EasySwoole\Crontab\AbstractCronTask; class TaskOne extends AbstractCronTask { public static function getRule(): string { // TODO: Implement getRule() method. // 定時周期 (每小時) return '@hourly'; } public static function getTaskName(): string { // TODO: Implement getTaskName() method. // 定時任務名稱 return 'taskOne'; } static function run(\swoole_server $server, int $taskId, int $fromWorkerId,$flags=null) { // 定時任務處理邏輯 // 我們在這里執行拉取文件、對比處理、保存文件的邏輯就好了 var_dump('run once per hour'); } }
php的框架:1、Laravel,Laravel是一款免費并且開源的PHP應用框架。2、Phalcon,Phalcon是運行速度最快的一個PHP框架。3、Symfony,Symfony是一款為Web項目準備的PHP框架。4、Yii,Yii是一款快速、安全和專業的PHP框架。5、CodeIgniter,CodeIgniter是一款非常敏捷的開源PHP框架。6、CakePHP,CakePHP是一款老牌的PHP框架。7.Kohana,Kohana是一款敏捷但是功能強大的PHP框架。
看完上述內容,你們對使用php怎么定期拉取數據對比有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。