在后台执行一个函数

Execute a function in the background

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

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

编辑: 我 运行宁 PHP Windows 10.

您需要在每个 X minute/hour/day/.. .

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

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

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

继续 Ali Farhoudi 的回答。

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

的权限

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

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

大多数托管服务都有一个简单的方法来执行此操作(运行 cron)。一开始您可能会发现一些反复试验,因为您的开发服务器可能与生产服务器不同。因此,由于显而易见的原因,在您的机器上 运行 终端/其他脚本的工作原理与服务器不同。

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

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

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

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

检查这个。

What is the Windows version of cron?

我猜你 运行 只有在本地才这样做?根据 windows 10.

判断