溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用php怎么定期拉取數(shù)據(jù)對(duì)比

發(fā)布時(shí)間:2021-05-21 16:00:47 來源:億速云 閱讀:141 作者:Leah 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)使用php怎么定期拉取數(shù)據(jù)對(duì)比,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

php定時(shí)執(zhí)行任務(wù)

關(guān)于定時(shí)執(zhí)行,最常見的方法是利用系統(tǒng)級(jí)別自帶的功能

  • linux ( crontab 定時(shí)任務(wù)命令) windows計(jì)劃任務(wù)

這需要手動(dòng)修改系統(tǒng)的任務(wù)文件,然后使其生效

手動(dòng)在linux添加定時(shí)任務(wù)

# crontab -e

運(yùn)行該命令 打開任務(wù)編輯 在其中輸入任務(wù)內(nèi)容,然后Esc :wq保存退出

任務(wù)示例

0 0 * * * /www/siam/test.sh

前面的是運(yùn)行周期的配置,后面的是sh腳本的路徑,該方式一般需要自己編寫sh腳本來執(zhí)行

寶塔面板快速計(jì)劃任務(wù)

如果我們使用寶塔面板當(dāng)成運(yùn)維工具,那么我們就可以很方便地添加計(jì)劃任務(wù)了,如下圖,寶塔中內(nèi)置了挺多計(jì)劃任務(wù)的類型,如定時(shí)請(qǐng)求URL,運(yùn)行腳本,備份文件等等。

可視化配置,帶給我們極大的便利,維護(hù)、添加都節(jié)約了很多的時(shí)間。

這也是為什么寶塔受到那么多人喜愛的原因之一吧。

寶塔面板計(jì)劃任務(wù)的面板添加
取巧云監(jiān)控定時(shí)執(zhí)行
以上兩種方式都需要服務(wù)器的權(quán)限,我們才可以管理定時(shí)任務(wù),假設(shè)我們剛?cè)腴T時(shí)使用的是虛擬主機(jī),沒有權(quán)限設(shè)置腳本運(yùn)行,那么該如何實(shí)現(xiàn)這種功能呢?

這里記錄了我以前學(xué)習(xí)時(shí)利用的一個(gè)小方案,大家可以在其中學(xué)習(xí)一下。

云監(jiān)控,是很多云服務(wù)商提供的一項(xiàng)服務(wù),它可以用來測(cè)試、分析接口或者網(wǎng)站的穩(wěn)定性和執(zhí)行效率。

我們可以在服務(wù)商的后臺(tái)類似寶塔面板一樣去添加任務(wù),然后服務(wù)商就會(huì)按我們?cè)O(shè)置的頻率,定期訪問網(wǎng)址,獲取網(wǎng)址的正確執(zhí)行、時(shí)間等信息,記錄到他們后臺(tái),提供給用戶查看分析改進(jìn)。

我們可以利用這種特性,由服務(wù)商向我們的服務(wù)發(fā)起請(qǐng)求,我們可以填寫一個(gè)php腳本的url,在其中判斷當(dāng)前時(shí)間,如果當(dāng)前時(shí)間周期已經(jīng)到了你設(shè)置的時(shí)間,則執(zhí)行下面的內(nèi)容

同時(shí)因?yàn)樵票O(jiān)控是不間斷地發(fā)起(一般最細(xì)顆粒是30s) 如果不能重復(fù)運(yùn)行的任務(wù),我們需要及時(shí)地把任務(wù)標(biāo)記為已經(jīng)執(zhí)行。

可以在本地寫文件,當(dāng)文件鎖。

不同云監(jiān)控服務(wù)商有不同的設(shè)置和服務(wù)提供,網(wǎng)上有挺多免費(fèi)的。大家可以找一找,如果找不到好的,也可以聯(lián)系我QQ交流一下。

現(xiàn)代化PHP

PHP發(fā)展了這么久,其實(shí)已經(jīng)有了很大的改進(jìn),比如PHP5OOP特性的完善、PHP7的性能提高、Swoole生態(tài)的出現(xiàn),讓PHP能做的事越來越多,越做越好。

在當(dāng)今環(huán)境中,我們可以使用SWOOLE常駐內(nèi)存的特性完成很多事,

這里推薦一下EasySwoole這款基于Swoole環(huán)境的框架。

關(guān)于定時(shí)任務(wù)在EasySwoole框架中的文檔地址點(diǎn)這里EasySwoole Crontab 定時(shí)器

常駐內(nèi)存的程序,在服務(wù)器上后臺(tái)穩(wěn)定運(yùn)行,

EasySwoole中提供了豐富的組件,比如傳統(tǒng)PHPFPM環(huán)境很難解決的Mysql數(shù)據(jù)庫連接池、協(xié)程Redis客戶端、協(xié)程Http客戶端、芒果DB客戶端等等

還有我們這個(gè)主題有的一個(gè)定時(shí)任務(wù)的模塊,下面看一小段demo代碼

首先在主環(huán)境事件代碼中開啟定時(shí)任務(wù)

public static function mainServerCreate(EventRegister $register)
{
  // 開始一個(gè)定時(shí)任務(wù)計(jì)劃
  Crontab::getInstance()->addTask(TaskOne::class);
}

定時(shí)任務(wù)的配置和內(nèi)容

namespace App\Crontab;

use EasySwoole\EasySwoole\Crontab\AbstractCronTask;

class TaskOne extends AbstractCronTask
{

  public static function getRule(): string
  {
    // TODO: Implement getRule() method.
    // 定時(shí)周期 (每小時(shí))
    return '@hourly';
  }

  public static function getTaskName(): string
  {
    // TODO: Implement getTaskName() method.
    // 定時(shí)任務(wù)名稱
    return 'taskOne';
  }

  static function run(\swoole_server $server, int $taskId, int $fromWorkerId,$flags=null)
  {
    // 定時(shí)任務(wù)處理邏輯

    // 我們?cè)谶@里執(zhí)行拉取文件、對(duì)比處理、保存文件的邏輯就好了
    var_dump('run once per hour');
  }
}

php的框架有哪些

php的框架:1、Laravel,Laravel是一款免費(fèi)并且開源的PHP應(yīng)用框架。2、Phalcon,Phalcon是運(yùn)行速度最快的一個(gè)PHP框架。3、Symfony,Symfony是一款為Web項(xiàng)目準(zhǔn)備的PHP框架。4、Yii,Yii是一款快速、安全和專業(yè)的PHP框架。5、CodeIgniter,CodeIgniter是一款非常敏捷的開源PHP框架。6、CakePHP,CakePHP是一款老牌的PHP框架。7.Kohana,Kohana是一款敏捷但是功能強(qiáng)大的PHP框架。

看完上述內(nèi)容,你們對(duì)使用php怎么定期拉取數(shù)據(jù)對(duì)比有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI