2012-12-12 32 views
1

他..我想CakePHP腳本的幫助,將刷新或指定的時間間隔後調用控制器中的功能。cakePHP腳本,將所有功能

public function testwebservices(){ 
    ini_set("soap.wsdl_cache_enabled","0"); 
    $options = array( 
    'soap_version'=>SOAP_1_2,   
    'exceptions'=>true,     
    'trace'=>1,      
    'cache_wsdl'=>WSDL_CACHE_NONE  
); 
$wsdl = "http://example.com/service.asmx?wsdl"; 
$client = new SoapClient($wsdl,$options); 
$lastrec = rec5000;   
$rec = $client->GetReceipt(array('txnRef'=>$lastrec)); 
$result = $rec->GetReceiptRez; 

我想調用上面的函數,以便它會在指定時間後自動執行。

預先感謝您

+1

你最好打賭可能是安排一個cron-job。這樣做會更有意義,然後期待您的Web框架爲您安排任何事情。當然,無論您在cron-job中調用哪些腳本,都需要負責加載所需的任何必需文件(來自cakePHP)。 – 2012-12-12 14:05:38

+0

好的.Thanx John讓我嘗試一下。我想也許可能會有一些函數像Javascript中的setTimeout()。 –

回答

0

你最好的選擇是去與一個cron任務(如果你是Unix/Linux機器上)。 cron任務可以通過幾種方式編寫。

第一:你可以直接與PHP解釋器和調用腳本你會在你的cron運行腳本可能看起來像

#!/bin/sh 
/path/to/php /full/path/to/script.php 

但是,你需要採取通知,你會沒有得到你的框架的好處。這意味着您正在使用的任何框架實用程序,您將不得不將自己加載到您的script.php文件中。如果這太多(加載所有必需的utils),那麼你可以用另一種方式來做。

二:您可以創建一個端點,如/test/web-service,你可以設置一個cron使Web請求到該腳本將檢查Web服務運行正常。在這種情況下,你將有可能看起來像一個簡單的捲曲請求:

#!/bin/sh 
curl http://mysite.com/test/web-service 

這種方法的好處是,你真的可以把這個在任何機器上(如果你把網址公衆),你得到的好處讓你的框架(在這種情況下爲cakePHP)被加載,並且所有的util都可以使用。