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文件中。如果这太多(加载所有必需的实用程序),那么你可以用另一种方式来做。

第二:您可以创建一个端点,例如/test/web-service,您可以设置一个 cron 来向该脚本发出 Web 请求,该脚本将检查 Web 服务是否正常运行。在这种情况下,您将有一个简单的 cURL 请求,可能如下所示:

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

这种方法的好处是您可以真正将它放在任何机器上(如果您公开 URL),并且您可以加载您的框架(在本例中为 cakePHP)并且所有实用程序都可供您使用。

于 2012-12-13T14:15:57.327 回答