搜尋
首頁後端開發php教程如何解決PHP定時發送服務的問題
如何解決PHP定時發送服務的問題Jun 15, 2018 am 11:38 AM
php定時發送

這篇文章主要介紹了關於PHP定時發送服務的解決辦法,需要的朋友可以參考下

#一、定時發送任務解析

  在進行手機APP或微信開發的時候,常常會有需要定時推播訊息的場景。

  定時發送又分為兩種:

    一種是在開發的時候固定時間,後台管理人員只能選擇將要推送的訊息;

    另一種是後台管理人員可以自由選擇推送的時間和訊息;

##二、解決方案

  PHP本身是不支援定時發送的,因為PHP是一個腳本語言。在大多數情況下,瀏覽器關閉,PHP也就不執行了。大部分情況下都依賴外部的一些小東西。

 

 1、固定時間

    大多數伺服器系統都是windows或linux。

      linux:使用CronTab定時執行php

          首先,進入命令列模式。身為伺服器的linux一般都預設進入命令列模式的,當然,我們管理伺服器也一般透過putty等工具遠端連接到伺服器,為了方便,我們用root使用者登入。在命令列中鍵入:

 crontab -e

          之後就會開啟一個文件,並且是非編輯狀態,則是vi的編輯介面,透過敲鍵盤上的i ,進入編輯模式,就可以編輯內容。這個文件中的每一行就是一個定時任務,我們新建一行,就是新建一條定時任務(當然是指這一行內按照一定的格式進行書寫)。我們現在來舉個例子,增加一行,內容如下:

00 * * * * lynx -dump https://www.yourdomain.com/script.php

          這是什麼意思呢?實際上上面這一行由兩個部分組成,前面一部分是時間,後面一部分是操作內容。例如上面這個,

00 * * * *

          就是指噹噹前時間的分鐘數為00時,執行該定時任務。時間部分由5個時間參數組成,分別為:

          分時日月週

#      分時日月週


#      n分鐘,例如*/8就是每8分鐘的意思,下面也是類推
          第2列表示小時1~23(0表示0點)
   第2列表示小時1~23(0表示0點)
   第1         第4列表示月份1~12

          第5列標識號星期0~6(0表示星期日)

                          。

lynx -dump https://www.yourdomain.com/script.php

          意思就是說透過lynx訪問這個url。我們在使用中主要使用到lynx、curl、wget來實現對url的遠端訪問,而如果要提高效率,直接用php去執行本地php檔案是最佳選擇,例如:

00 */2 * * * /usr/local/bin/php /home/www/script.php

          這條語句就可以在每2小時的0分鐘,透過linux內部php環境執行script.php,注意,這裡可不是透過url訪問,透過伺服器環境來執行哦,而是直接執行,因為繞過了伺服器環境,所以效率當然高很多。


          好了,已經添加了幾條需要的定時任務了吧。點選鍵盤上的Esc鍵,輸入「:wq」回車,這樣就儲存了設定的定時任務,螢幕上也能看到提示建立了新的定時任務。接下來就是好好寫你的script.php            了。

      windows:

          windows上和linux上有一個類似的cmd和bat文件,batcmd  windows上和linux上有一個類似的cmd和bat檔,bat透過邏輯來實現程式設計),所以,我們可以利用bat指令檔在windows伺服器上面實作PHP定時任務。其實在windows上計時任務,和linux上道理是一樣的,只不過方法和途徑不同。好了下面開始。

          首先,在一個你覺得比較適當的位置創建一個cron.bat文件,然後用文本編輯器打開它(記事本都可以),在裡面寫上這樣的內容:

D:\php\php.exe -q D:\website\test.php

          這句話的意思就是,使用php.exe去執行test.php這個php文件,和上面的contab一樣,繞過了伺服器環境,執行效率也比較高。寫好之後,點選儲存,關閉編輯器。 ###

          接下來就是設定定時任務來執行cron.bat。依序開啟:“開始–>控制面板–>任務計畫–>新增任務計畫”,在開啟的介面中設定定時任務的時間、密碼,透過選擇,把cron.bat掛載進去。確定,這樣          一個定時任務就建立好了,在這個定時任務上右鍵,運行,這個定時任務就開始執行了,到點時,就會運行cron.bat處理,cron.bat再去執行php。

  2、自由選擇時間

    常用的部落格系統wordpress有一個wp-corn檔案來執行部落格的定時發送,部落客以wp-corn為原型撰寫了一個文件。

    wp-corn是非常消耗伺服器資源的一個策略。每個人造訪部落格的時候都會呼叫wp-corn檔案(讀取目前伺服器時間,判斷是否發送)。缺陷是在訪問人數比較小的時候不能及時發送,人數過多又造成伺服器效能降低。

    部落客做專案的時候公司提供的是一台windows伺服器。採用的方法是在伺服器上開啟一個頁面,每分鐘自動刷新一次(簡單的js腳本,不再提供程式碼)。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

PHP的預定義介面解析

以上是如何解決PHP定時發送服務的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器