1

こんにちは..指定された時間間隔の後にコントローラー内の関数を更新または呼び出す 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;

上記の関数を呼び出して、指定した時間後に自動的に実行されるようにしたい。

前もって感謝します

4

1 に答える 1

0

cron タスクを使用することをお勧めします (Unix/Linux マシンを使用している場合)。cron タスクは、いくつかの方法で作成できます。

最初: PHP インタープリターを使用してスクリプトを直接呼び出すことができ、cron で実行するスクリプトは次のようになります。

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

ただし、フレームワークのメリットが得られないことに注意する必要があります。つまり、使用しているフレームワーク ユーティリティはすべて、自分自身をscript.phpファイルにロードする必要があります。これが多すぎる (必要なすべてのユーティリティをロードする) 場合は、別の方法で実行できます。

2 番目:などのエンドポイントを作成し/test/web-service、cron をセットアップして、そのスクリプトに対して Web 要求を作成し、Web サービスが正しく実行されていることを確認できます。その場合、単純な cURL リクエストは次のようになります。

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

このアプローチの利点は、これを任意のマシンに実際に配置でき (URL を公開する場合)、フレームワーク (この場合は CakePHP) をロードしてすべてのユーティリティを利用できるという利点があることです。

于 2012-12-13T14:15:57.327 に答える