在后台执行一个功能

时间:2016-03-21 15:18:06

标签: php codeigniter email reminders

我制作了一个提醒系统,可以在每个提醒中设置的日期和时间发送电子邮件。

我希望有一个自动化函数在后台执行此电子邮件发送脚本,这样当服务器打开时,此函数将在不中断其他进程的情况下运行。

修改 我在Windows 10上运行PHP。

2 个答案:

答案 0 :(得分:0)

您需要设置 cron作业以每 X 分钟/小时/天/ ...运行您的代码。

在控制器中创建一个方法并将代码放入其中。然后设置你的cron作业以在特殊时刻运行它。

如果您有cPanel或其他管理面板,那将很容易。

编辑#1 :要在CLI中运行,您应该使用php命令运行index.php并将控制器和操作名称作为参数发送。如果您有一个名为 User 的控制器和名为" happy_birthday"的方法,那么您需要运行此命令:php index.php users happy_birthday

答案 1 :(得分:0)

继续从Ali Farhoudi回答。

您需要使用$ this-> input-> is_cli_request()的授权

https://ellislab.com/codeigniter/user-guide/general/cli.html

is_cli_request()将确保您从服务器运行命令,IE没有人刚刚导航到该URL并运行该脚本。

大多数托管服务都有一个简单的方法(运行一个cron)。您最初可能会发现一些试验和错误,因为您的开发服务器可能与生产不同。因此,在您的机器上运行脚本/终端上的脚本的原因与服务器不同,原因显而易见。

所以它只是一个像任何其他控制器一样,在给定时间服务器运行。

我看起来像这样,设置在一个cron里面

php-cli /home/a_subfolder/public_html/another_subfolder/myscript.php

这是在Linux服务器上运行,所以codeigniter问题部分在上面,你如何在windows中运行cron,不知道/关心

检查一下。

What is the Windows version of cron?

我猜你的本地运行只是在那时?从Windows 10来看。