Subversion Repositories qbpwcf-lib(archive)

Rev

Rev 660 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 660 Rev 663
Line 32... Line 32...
32
$logFile=$_SERVER["DOCUMENT_ROOT"].$_SERVER["PHP_SELF"].".log";
32
$logFile=$_SERVER["DOCUMENT_ROOT"].$_SERVER["PHP_SELF"].".log";
33
 
33
 
34
#初始化儲存工作
34
#初始化儲存工作
35
$job_at_now_repeat_after_60sec=array();
35
$job_at_now_repeat_after_60sec=array();
36
 
36
 
-
 
37
#清空排程設定檔案
-
 
38
#函式說明:
-
 
39
#將字串寫入到檔案
-
 
40
#回傳結果:
-
 
41
#$result["status"],"true"表示檔案寫入成功,"false"表示檔案寫入失敗.
-
 
42
#$result["error"],錯誤訊息陣列.
-
 
43
#$result["function"],當前執行的函數名稱.
-
 
44
#$result["fileInfo"],實際上寫入的檔案資訊陣列.
-
 
45
#$result["fileInfo"]["createdFileName"],建立好的檔案名稱.
-
 
46
#$result["fileInfo"]["createdFilePath"],檔案建立的路徑.
-
 
47
#$result["fileInfo"]["createdFilePathAndName"].建立好的檔案名稱與路徑.
-
 
48
#$result["argu"],使用的參數.
-
 
49
#必填參數:
-
 
50
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
-
 
51
$conf["fileArgu"]=__FILE__;
-
 
52
#可省略參數:
-
 
53
#$conf["fileName"],字串,爲要編輯的檔案名稱,預設為隨機產生的檔案名稱.
-
 
54
$conf["fileName"]="assets of autoService/qbpwcf-schedule.conf.php";
-
 
55
#$conf["inputString"],字串,爲要寫入到裏面的內容,若要每筆資料寫入後換行,則可以在字串內容後面加上 \r\n 即可,預設為"".
-
 
56
#$conf["inputString"]="";
-
 
57
#$conf["writeMethod"],字串,爲檔案撰寫的方式,可省略,是複寫'a'還是,重新寫入'w',預設爲'w',重新寫入.
-
 
58
#$conf["writeMethod"]="a";
-
 
59
#$conf["checkRepeat"],字串,"true"代表建立檔案之前要先檢查檔案是否存在,若存在則在原名稱後面加上從(1)開始的編號.
-
 
60
#$conf["checkRepeat"]="";
-
 
61
#$conf["filenameExtensionStartPoint"],字串,檔案的副檔名是從倒數第幾個小數點(dot)開始,預設為"1",最後一個小數點,必須與$conf["checkRepeat"]搭配才會生效.
-
 
62
#$conf["filenameExtensionStartPoint"]="";
-
 
63
#$conf["repeatNameRule"],字串,遇到相同名稱的檔案要如何加上識別的編號,編號用「\$i」表示,預設為"(\$i)",必須與$conf["checkRepeat"]搭配才會生效.
-
 
64
#$conf["repeatNameRule"]="";
-
 
65
#$conf["web"],檔案是否位於網站上"true",若是在檔案系統則為"false",預設為"true".
-
 
66
$conf["web"]="false";
-
 
67
#參考資料:
-
 
68
#無.
-
 
69
#備註:
-
 
70
#無.
-
 
71
$writeTextIntoFile=fileAccess::writeTextIntoFile($conf);
-
 
72
unset($conf);
-
 
73
 
-
 
74
#如果執行失敗
-
 
75
if($writeTextIntoFile["status"]=="false"){
-
 
76
	
-
 
77
	#印出結果
-
 
78
	var_dump($callShell);
-
 
79
	
-
 
80
	#結束執行回傳1
-
 
81
	exit(1);
-
 
82
	
-
 
83
	}#if end
-
 
84
 
37
#函式說明:
85
#函式說明:
38
#呼叫shell執行系統命令,並取得回傳的內容.
86
#呼叫shell執行系統命令,並取得回傳的內容.
39
#回傳結果:
87
#回傳結果:
40
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
88
#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
41
#$result["error"],錯誤訊息陣列.
89
#$result["error"],錯誤訊息陣列.
Line 106... Line 154...
106
	}#if end
154
	}#if end
107
 
155
 
108
#記錄 action
156
#記錄 action
109
$job_at_now_repeat_after_60sec["action"]=$callShell["escape"]["array"];
157
$job_at_now_repeat_after_60sec["action"]=$callShell["escape"]["array"];
110
 
158
 
111
#函式說明:
-
 
112
#計算時間點距離1970/01/01多少秒.
-
 
113
#回傳結果:
-
 
114
#$result["stauts"],執行是否成功,"true"代表執行成功;"false"代表執行失敗
-
 
115
#$result["error"],錯誤訊息陣列
-
 
116
#$result["content"],時間點距離1970/01/01的多少秒
-
 
117
#必填參數:
-
 
118
#$conf["dateAndTime"],字串,格式爲 2011-05-27 23:59:59
-
 
119
$conf["dateAndTime"]="0000-00-00 00:00:00";
-
 
120
#可省略參數:
-
 
121
#無.
-
 
122
#參考資料:
-
 
123
#無.
-
 
124
#備註:
-
 
125
#無.
-
 
126
$caculateTimeAmount=time::caculateTimeAmount($conf);
-
 
127
unset($conf);
-
 
128
 
-
 
129
#如果執行失敗
-
 
130
if($caculateTimeAmount["status"]=="false"){
-
 
131
	
-
 
132
	#印出結果
-
 
133
	var_dump($caculateTimeAmount);
-
 
134
	
-
 
135
	#結束執行回傳1
-
 
136
	exit(1);
-
 
137
	
-
 
138
	}#if end
-
 
139
 
-
 
140
#記錄 time
159
#記錄 time
141
$job_at_now_repeat_after_60sec["time"]=$caculateTimeAmount["content"];
160
$job_at_now_repeat_after_60sec["time"]="0000-00-00 00:00:00";
142
 
161
 
143
#記錄 repeat 規則
162
#記錄 repeat 規則
144
$job_at_now_repeat_after_60sec["repeat"]=array("times"=>-1,"after"=>60);
163
$job_at_now_repeat_after_60sec["repeat"]=array("times"=>-1,"after"=>60);
145
 
164
 
146
#初始化儲存工作
165
#初始化儲存工作
Line 218... Line 237...
218
	}#if end
237
	}#if end
219
 
238
 
220
#記錄 action
239
#記錄 action
221
$job_at_every_min["action"]=$callShell["escape"]["array"];
240
$job_at_every_min["action"]=$callShell["escape"]["array"];
222
 
241
 
223
#函式說明:
-
 
224
#計算時間點距離1970/01/01多少秒.
-
 
225
#回傳結果:
-
 
226
#$result["stauts"],執行是否成功,"true"代表執行成功;"false"代表執行失敗
-
 
227
#$result["error"],錯誤訊息陣列
-
 
228
#$result["content"],時間點距離1970/01/01的多少秒
-
 
229
#必填參數:
-
 
230
#$conf["dateAndTime"],字串,格式爲 2011-05-27 23:59:59
-
 
231
$conf["dateAndTime"]="0000-00-00 00:01:00";
-
 
232
#可省略參數:
-
 
233
#無.
-
 
234
#參考資料:
-
 
235
#無.
-
 
236
#備註:
-
 
237
#無.
-
 
238
$caculateTimeAmount=time::caculateTimeAmount($conf);
-
 
239
unset($conf);
-
 
240
 
-
 
241
#如果執行失敗
-
 
242
if($caculateTimeAmount["status"]=="false"){
-
 
243
	
-
 
244
	#印出結果
-
 
245
	var_dump($caculateTimeAmount);
-
 
246
	
-
 
247
	#結束執行回傳1
-
 
248
	exit(1);
-
 
249
	
-
 
250
	}#if end
-
 
251
 
-
 
252
#記錄 time
242
#記錄 time
253
$job_at_every_min["time"]=$caculateTimeAmount["content"];
243
$job_at_every_min["time"]="0000-00-00 00:01:00";
254
 
244
 
255
#記錄 repeat 規則
245
#記錄 repeat 規則
256
$job_at_every_min["repeat"]=array("times"=>-1,"fixed"=>$job_at_every_min["time"]);
246
$job_at_every_min["repeat"]=array("times"=>-1,"fixed"=>$job_at_every_min["time"]);
257
 
247
 
258
#函式說明:
248
#函式說明:
Line 264... Line 254...
264
#必填參數:
254
#必填參數:
265
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
255
#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
266
$conf["fileArgu"]=__FILE__;
256
$conf["fileArgu"]=__FILE__;
267
#$conf["actions"],字串陣列,每個元素代表要執行的事情,每個事情為要執行的指令與參數所組成的一維陣列.
257
#$conf["actions"],字串陣列,每個元素代表要執行的事情,每個事情為要執行的指令與參數所組成的一維陣列.
268
$conf["actions"]=array($job_at_now_repeat_after_60sec["action"],$job_at_every_min["action"]);
258
$conf["actions"]=array($job_at_now_repeat_after_60sec["action"],$job_at_every_min["action"]);
269
#$conf["times"],字串陣列,每個元素代表要執行事情的時間點,單為為秒.格式為unixtime,事情不存在於啟動的狀態且當前時間大於等於之就會執行.
259
#$conf["times"],字串陣列,每個元素代表要執行事情的時間點,單為為秒.格式為UTC時區的「年年年年-月月-日日 時 時:分分:秒秒」格式,事情不存在於啟動的狀態且當前時間大於等於之就會執行.
270
$conf["times"]=array($job_at_now_repeat_after_60sec["time"],$job_at_every_min["time"]);
260
$conf["times"]=array($job_at_now_repeat_after_60sec["time"],$job_at_every_min["time"]);
271
#$conf["repeat"],字串陣列,每個元素為一維陣列,key為"times"代表要執行事情的重複方式,若其value為"N"代表重複執行N次(若N等於-1,則代表無限重複執行;若N等於0,則代表執行後就會消失);key為"after"代表下次執行的時間為times+加其value;key為"fixed"代表下次執行的時間為一個循環的固定時間點,value為每次循環的固定時間點,例如每天01:05則為1h*3600s+5m*60s=3900,小於一天(86400秒)的時間,因此周期為天.
261
#$conf["repeat"],字串陣列,每個元素為一維陣列,key為"times"代表要執行事情的重複方式,若其value為"N"代表重複執行N次(若N等於-1,則代表無限重複執行;若N等於0,則代表執行後就會消失);key為"after"代表下次執行的時間為times+加其value;key為"fixed"代表下次執行的時間為一個循環的固定時間點,value為每次循環的固定時間點,例如每天01:05則為1h*3600s+5m*60s=3900,小於一天(86400秒)的時間,因此周期為天.
272
$conf["repeat"]=array($job_at_now_repeat_after_60sec["repeat"],$job_at_every_min["repeat"]);
262
$conf["repeat"]=array($job_at_now_repeat_after_60sec["repeat"],$job_at_every_min["repeat"]);
273
#可省略參數:
263
#可省略參數:
274
#$conf["config"],字串,排程的設定檔位置,預設為"/usr/local/etc/qbpwcf-schedule.conf.php".
264
#$conf["config"],字串,排程的設定檔位置,預設為"/usr/local/etc/qbpwcf-schedule.conf.php".