Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在后台执行codeigniter控制器方法_Php_Codeigniter - Fatal编程技术网

Php 如何在后台执行codeigniter控制器方法

Php 如何在后台执行codeigniter控制器方法,php,codeigniter,Php,Codeigniter,我有一个codeigniter的控制器功能,可以从gmail中获取邮件 这需要花费很多时间,所以我需要在后台执行特定的控制器功能,这样用户就不必等到所有邮件都取回了。ajaxjqueryway js: php: 这里是指像AJAX这样的客户端解决方案吗?或者按照@MonkeyZeus的建议使用AJAX。Cronjob或Queu系统之类的。php不能真正异步运行,我使用了Proc_Close(Proc_Open(“phpcli-qtest1.php&”,Array(),$foo));其中,我的te

我有一个codeigniter的控制器功能,可以从gmail中获取邮件


这需要花费很多时间,所以我需要在后台执行特定的控制器功能,这样用户就不必等到所有邮件都取回了。

ajaxjqueryway

js:

php:


这里是指像AJAX这样的客户端解决方案吗?或者按照@MonkeyZeus的建议使用AJAX。Cronjob或Queu系统之类的。php不能真正异步运行,我使用了Proc_Close(Proc_Open(“phpcli-qtest1.php&”,Array(),$foo));其中,我的test1.php具有获取邮件并存储在数据库中的脚本。如果我直接执行test1.php,则会插入42行,但当我使用Proc_Close(Proc_Open(“php cli-qtest1.php&”,Array(),$foo));仅插入5行。有人能告诉我原因和解决方案吗?如果用户在还没有收到邮件时切换到其他页面怎么办?ajax调用的php脚本(myMethod())仍在执行吗?
$.ajax({
    url   : "index.php?/MyController/myMethod",
    async : true //change this to false if you hate your users and want them to wait 
}).done(function() {
    alert("EMAIL IS READY! USER DIDN'T WAIT")
});
class MyController extends CI_Controller{

      function myMethod(){
          //do your email stuff
      }

      //if codgeIgniter V2
      function myMethod_get(){
          //do your email stuff
      }

}