台灣最大程式設計社群網站
線上人數
1042
 
會員總數:246046
討論主題:189631
歡迎您免費加入會員
討論區列表 >> PHP >> 關於背景執行自訂函數
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於背景執行自訂函數
價值 : 10 QP  點閱數:743 回應數:8
樓主

DongTouchMe
門外漢
0 3
80 9
發送站內信






我想每天凌晨3點讓它執行自訂函數裡的動作
但是都執行到fwrite($file,'begin:'.date('Y-m-d H:i:s').PHP_EOL);
就停止了...

我晚上11點啟動這個背景程式
當下還可以執行到自訂函數裡
但是到了凌晨都會進不去函數裡面
就連fwrite($file,'End:'.PHP_EOL);也沒執行到
想請問各位高手有沒有辦法幫我解決
拜託了...





搜尋相關Tags的文章: [ 背景執行 ] , [ 自訂函數 ] ,
本篇文章發表於2016-01-19 09:14
== 簽名檔 ==
好難
1樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
你不能一直讓同一支php一直跑。會被中斷或是崩潰

最好的方式還是得要利用排程跑。
本篇文章回覆於2016-01-19 09:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

迷路
捐贈 VP 給 迷路 檢舉此回應
稍微測試一下,程式本身應該是OK的
推測可能的問題有系統本身負荷過高,導致程式執行延遲
或是windows主機半夜三點在進行更新檢查之類的

先提出一個建議
fopen、fwrite、fclose三個動作用file_put_contents這個就可以一次搞定了
參見
http://www.w3school.com.cn/php/func_filesystem_file_put_contents.asp

試試看將時間改成凌晨兩點或四點之類的會不會有影響
本篇文章回覆於2016-01-19 09:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

DongTouchMe
檢舉此回應
浩瀚星空:
你是說用powerShell? 還是windows其他的方法?
有範例或參考點嗎...謝謝~


迷路:好的~~
我試試看其他時間~
本篇文章回覆於2016-01-19 11:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
如果用windwos
那就是用計劃任務來跑。

不要讓一支php程式一直在線上跑。那是有風險的。
在linux內就是叫做crontab。windows則是叫計劃任務,也可能叫做排程工作

一般可以在「控制台」「系統及安全性」「系統管理工具」「工作排程」這塈鋮

你可以在這埵w排時間來定時處理你要跑的程式。(使用php的命令處理就行了,直接運行php檔的話,會自動開瀏覽器出來,這樣並不太好)
如何設定可以參考 http://vanishingpoint.logdown.com/posts/164616/how-to-use-php-timed-grab-web-pages-or-facebook-data

一般來說。其實我會在設計一個cron的計劃任務。這樣我在排程工作設定只要去跑cron•php這個就行了。
剩下的就交給cron.php來做判斷控制處理了。



本篇文章回覆於2016-01-19 13:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
如果可以接受排程的話
那就只要指定時間跑一次就好了
只是說如果設定排程的電腦沒開機,排程就會漏掉......
本篇文章回覆於2016-01-19 13:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

DongTouchMe
檢舉此回應
我是用windows
它裡面的php還是用set_time_limit(0);讓它無限執行
所以沒有關係嗎?
還是我只要把set_time_limit調到3000就好?
本篇文章回覆於2016-01-19 13:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
用PHP做無限運行是一件很危險的事。

其一很容易發生記憶體吃住的問題。
其二很容易發生崩潰問題。(這樣你就會停掉了)

所以一般來說,最好不要這樣做。如果只是為了定時處理一件事。
安全點還是用排程來處理是最好的。

而且又是WINDOW系統.......跑無限PHP程式會很容易掛的喔!!
本篇文章回覆於2016-01-19 17:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

DongTouchMe
檢舉此回應
好的~~
那我就試試看set_time_limit調成3000
然後用裡面的排程方法是個一兩天看看~~
謝謝兩位大大
本篇文章回覆於2016-01-19 17:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.